From 4e1606e0f0f0ad58371f3f6ded47ece052b88d5b Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Thu, 27 Jan 2022 12:44:02 -0600 Subject: [PATCH] CanvasWidgets have a grab() api. fixes: sometimes the wrong region is dragged --- gtk2_ardour/triggerbox_ui.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/triggerbox_ui.cc b/gtk2_ardour/triggerbox_ui.cc index 896ef29526..0aee799736 100644 --- a/gtk2_ardour/triggerbox_ui.cc +++ b/gtk2_ardour/triggerbox_ui.cc @@ -692,12 +692,11 @@ TriggerEntry::event (GdkEvent* ev) switch (ev->type) { case GDK_2BUTTON_PRESS: - gdk_pointer_ungrab (GDK_CURRENT_TIME); - break; - case GDK_BUTTON_RELEASE: - gdk_pointer_ungrab (GDK_CURRENT_TIME); - break; + if(_grabbed) { + ungrab(); + _grabbed = false; + } break; case GDK_BUTTON_PRESS: if (!_drag_active) { @@ -705,7 +704,8 @@ TriggerEntry::event (GdkEvent* ev) if (bev->button == 1) { _drag_start_x = bev->x; _drag_start_y = bev->y; - gdk_pointer_grab (bev->window, false, GdkEventMask (Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK), NULL, NULL, bev->time); + _grabbed = true; + grab(); return true; } else { _drag_start_x = -1;