summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-18 19:58:34 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-18 19:58:34 +0000
commitdf1da084eddfb2f9b2016595649b435be43c15d3 (patch)
treec28f5b9bf75fb803a722a72949f3b68172dc5a0f /libs/gtkmm2ext
parent7356c65a2a35c8059d5132df7e9f149617952232 (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')
-rw-r--r--libs/gtkmm2ext/binding_proxy.cc22
-rw-r--r--libs/gtkmm2ext/gtk_ui.cc3
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/binding_proxy.h4
3 files changed, 21 insertions, 8 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
+ }
}
diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc
index eed78e1fdb..58178056c2 100644
--- a/libs/gtkmm2ext/gtk_ui.cc
+++ b/libs/gtkmm2ext/gtk_ui.cc
@@ -591,7 +591,8 @@ UI::flush_pending ()
bool
UI::just_hide_it (GdkEventAny *ev, Window *win)
{
- win->hide_all ();
+ cerr << "++++ JUST HIDING " << win->get_window() << endl;
+ win->hide ();
return true;
}
diff --git a/libs/gtkmm2ext/gtkmm2ext/binding_proxy.h b/libs/gtkmm2ext/gtkmm2ext/binding_proxy.h
index a26c8ace2a..d8f37c7649 100644
--- a/libs/gtkmm2ext/gtkmm2ext/binding_proxy.h
+++ b/libs/gtkmm2ext/gtkmm2ext/binding_proxy.h
@@ -33,7 +33,7 @@ class BindingProxy : public sigc::trackable
{
public:
BindingProxy (PBD::Controllable&);
- virtual ~BindingProxy() {}
+ virtual ~BindingProxy();
void set_bind_button_state (guint button, guint statemask);
void get_bind_button_state (guint &button, guint &statemask);
@@ -42,7 +42,7 @@ class BindingProxy : public sigc::trackable
protected:
- Gtkmm2ext::PopUp prompter;
+ Gtkmm2ext::PopUp* prompter;
PBD::Controllable& controllable;
guint bind_button;
guint bind_statemask;