summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_canvas_events.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2020-03-25 15:30:52 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2020-03-25 15:30:52 -0600
commit5d1b75bd4faa96badd94863525b10777c9664d97 (patch)
tree2cd8ffb98df3d9ad74cf4ee8a1ef3692d1899715 /gtk2_ardour/editor_canvas_events.cc
parent4151ec19074913376b3a6a19a0812f9fdebe7eca (diff)
likely fix for cases where a button release event falls through from the canvas to the editor, during a drag
The drag code expects coordinates in canvas coordinates, but we were not translating them at the editor level (canvas event handling does do this, but cannot affect the situation if the event falls through to the editor)
Diffstat (limited to 'gtk2_ardour/editor_canvas_events.cc')
-rw-r--r--gtk2_ardour/editor_canvas_events.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc
index f098e40df6..884e7ca82e 100644
--- a/gtk2_ardour/editor_canvas_events.cc
+++ b/gtk2_ardour/editor_canvas_events.cc
@@ -188,7 +188,15 @@ Editor::track_canvas_button_release_event (GdkEventButton *event)
{
if (!Keyboard::is_context_menu_event (event)) {
if (_drags->active ()) {
- _drags->end_grab ((GdkEvent*) event);
+
+ GdkEvent copy = *((GdkEvent*) event);
+ Duple winpos = Duple (event->x, event->y);
+ Duple where = _track_canvas->window_to_canvas (winpos);
+
+ copy.button.x = where.x;
+ copy.button.y = where.y;
+
+ _drags->end_grab (&copy);
}
}
return false;