summaryrefslogtreecommitdiff
path: root/libs/widgets
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-23 19:40:20 +0200
committerRobin Gareus <robin@gareus.org>2017-07-23 19:40:20 +0200
commit183351f33359b0d110dcc12a8121b6fac112bc14 (patch)
tree839a1b0bf5d138753c4f7a83f3f30a72634bb069 /libs/widgets
parent05ddcdc004b25ad93c2376875daff0359ec6d7bb (diff)
Add touch-events signal emission to ArdourKnob
Diffstat (limited to 'libs/widgets')
-rw-r--r--libs/widgets/ardour_knob.cc4
-rw-r--r--libs/widgets/widgets/ardour_knob.h3
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);