diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-12-22 01:48:20 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-12-22 01:48:20 +0000 |
commit | bfffdca239f37c4e2e67c34732774c886c03c282 (patch) | |
tree | 1a67712fe4228576c49cf7e44cc1cc07e7b6c048 /libs/gtkmm2ext | |
parent | 9946e615cac53998de4a48c5f1fe061efa6edf1e (diff) |
more panner tweaks
git-svn-id: svn://localhost/ardour2/trunk@1244 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/barcontroller.cc | 25 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/barcontroller.h | 4 |
2 files changed, 19 insertions, 10 deletions
diff --git a/libs/gtkmm2ext/barcontroller.cc b/libs/gtkmm2ext/barcontroller.cc index cfa56eefbc..803cb113cb 100644 --- a/libs/gtkmm2ext/barcontroller.cc +++ b/libs/gtkmm2ext/barcontroller.cc @@ -70,8 +70,8 @@ BarController::BarController (Gtk::Adjustment& adj, darea.signal_expose_event().connect (mem_fun (*this, &BarController::expose)); darea.signal_motion_notify_event().connect (mem_fun (*this, &BarController::motion)); - darea.signal_button_press_event().connect (mem_fun (*this, &BarController::button_press)); - darea.signal_button_release_event().connect (mem_fun (*this, &BarController::button_release)); + darea.signal_button_press_event().connect (mem_fun (*this, &BarController::button_press), false); + darea.signal_button_release_event().connect (mem_fun (*this, &BarController::button_release), false); darea.signal_scroll_event().connect (mem_fun (*this, &BarController::scroll)); spinner.signal_activate().connect (mem_fun (*this, &BarController::entry_activated)); @@ -82,6 +82,16 @@ BarController::BarController (Gtk::Adjustment& adj, show_all (); } +void +BarController::drop_grab () +{ + if (grabbed) { + grabbed = false; + darea.remove_modal_grab(); + StopGesture (); + } +} + bool BarController::button_press (GdkEventButton* ev) { @@ -93,8 +103,7 @@ BarController::button_press (GdkEventButton* ev) case 1: if (ev->type == GDK_2BUTTON_PRESS) { switch_on_release = true; - grabbed = false; - darea.remove_modal_grab(); + drop_grab (); } else { switch_on_release = false; darea.add_modal_grab(); @@ -123,6 +132,8 @@ BarController::button_release (GdkEventButton* ev) { double fract; + drop_grab (); + switch (ev->button) { case 1: if (switch_on_release) { @@ -145,10 +156,6 @@ BarController::button_release (GdkEventButton* ev) mouse_control (ev->x, ev->window, scale); } - darea.remove_modal_grab(); - grabbed = false; - StopGesture (); - grabbed = false; break; case 2: @@ -200,7 +207,7 @@ BarController::motion (GdkEventMotion* ev) double scale; if (!grabbed) { - return TRUE; + return true; } if ((ev->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK)) == GDK_SHIFT_MASK) { diff --git a/libs/gtkmm2ext/gtkmm2ext/barcontroller.h b/libs/gtkmm2ext/gtkmm2ext/barcontroller.h index a6883238ea..e5b8e31b58 100644 --- a/libs/gtkmm2ext/gtkmm2ext/barcontroller.h +++ b/libs/gtkmm2ext/gtkmm2ext/barcontroller.h @@ -20,7 +20,8 @@ #ifndef __gtkmm2ext_bar_controller_h__ #define __gtkmm2ext_bar_controller_h__ -#include <gtkmm.h> +#include <gtkmm/frame.h> +#include <gtkmm/drawingarea.h> #include <gtkmm2ext/binding_proxy.h> namespace ARDOUR { @@ -90,6 +91,7 @@ class BarController : public Gtk::Frame gint switch_to_spinner (); void entry_activated (); + void drop_grab (); }; |