diff options
Diffstat (limited to 'libs/widgets')
-rw-r--r-- | libs/widgets/ardour_knob.cc | 4 | ||||
-rw-r--r-- | libs/widgets/widgets/ardour_knob.h | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/libs/widgets/ardour_knob.cc b/libs/widgets/ardour_knob.cc index 40adeb7d90..6f673c5c67 100644 --- a/libs/widgets/ardour_knob.cc +++ b/libs/widgets/ardour_knob.cc @@ -393,6 +393,8 @@ ArdourKnob::on_button_press_event (GdkEventButton *ev) if (ev->type != GDK_BUTTON_PRESS) { if (_grabbed) { remove_modal_grab(); + _grabbed = false; + StopGesture (); gdk_pointer_ungrab (GDK_CURRENT_TIME); } return true; @@ -410,6 +412,7 @@ ArdourKnob::on_button_press_event (GdkEventButton *ev) _tooltip.start_drag(); add_modal_grab(); _grabbed = true; + StartGesture (); gdk_pointer_grab(ev->window,false, GdkEventMask( Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK |Gdk::BUTTON_RELEASE_MASK), NULL,NULL,ev->time); @@ -421,6 +424,7 @@ ArdourKnob::on_button_release_event (GdkEventButton *ev) { _tooltip.stop_drag(); _grabbed = false; + StopGesture (); remove_modal_grab(); gdk_pointer_ungrab (GDK_CURRENT_TIME); diff --git a/libs/widgets/widgets/ardour_knob.h b/libs/widgets/widgets/ardour_knob.h index c07b0447cb..b424e13a8a 100644 --- a/libs/widgets/widgets/ardour_knob.h +++ b/libs/widgets/widgets/ardour_knob.h @@ -91,6 +91,9 @@ public: void color_handler (); + sigc::signal<void> StartGesture; + sigc::signal<void> StopGesture; + protected: void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*); void on_size_request (Gtk::Requisition* req); |