diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-18 19:58:34 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-18 19:58:34 +0000 |
commit | df1da084eddfb2f9b2016595649b435be43c15d3 (patch) | |
tree | c28f5b9bf75fb803a722a72949f3b68172dc5a0f /libs/gtkmm2ext/binding_proxy.cc | |
parent | 7356c65a2a35c8059d5132df7e9f149617952232 (diff) |
permit OSX native package without JACK; prevent excessive track name lengths from messing up JACK port names; splash screen tweaks for OS X; new region gain control operations ; work on AU plugin GUIs (totally incomplete); don't needlessly create prompters in a barcontroller (create on demand)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2938 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/gtkmm2ext/binding_proxy.cc')
-rw-r--r-- | libs/gtkmm2ext/binding_proxy.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/libs/gtkmm2ext/binding_proxy.cc b/libs/gtkmm2ext/binding_proxy.cc index 3a2f5bbbc8..90f95f82ef 100644 --- a/libs/gtkmm2ext/binding_proxy.cc +++ b/libs/gtkmm2ext/binding_proxy.cc @@ -32,13 +32,19 @@ using namespace std; using namespace PBD; BindingProxy::BindingProxy (Controllable& c) - : prompter (Gtk::WIN_POS_MOUSE, 30000, false), + : prompter (0), controllable (c), bind_button (2), bind_statemask (Gdk::CONTROL_MASK) { - prompter.signal_unmap_event().connect (mem_fun (*this, &BindingProxy::prompter_hiding)); +} + +BindingProxy::~BindingProxy () +{ + if (prompter) { + delete prompter; + } } void @@ -61,8 +67,12 @@ BindingProxy::button_press_handler (GdkEventButton *ev) if ((ev->state & bind_statemask) && ev->button == bind_button) { if (Controllable::StartLearning (&controllable)) { string prompt = _("operate controller now"); - prompter.set_text (prompt); - prompter.touch (); // shows popup + if (prompter == 0) { + prompter = new PopUp (Gtk::WIN_POS_MOUSE, 30000, false); + prompter->signal_unmap_event().connect (mem_fun (*this, &BindingProxy::prompter_hiding)); + } + prompter->set_text (prompt); + prompter->touch (); // shows popup learning_connection = controllable.LearningFinished.connect (mem_fun (*this, &BindingProxy::learning_finished)); } return true; @@ -75,7 +85,9 @@ void BindingProxy::learning_finished () { learning_connection.disconnect (); - prompter.touch (); // hides popup + if (prompter) { + prompter->touch (); // hides popup + } } |