From ebd317880967e79c33145a6f7f22541329c7476a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 26 Jan 2015 16:37:53 -0500 Subject: [PATCH] ignore context menu click events, notably during drag but also for a couple of other purposes --- gtk2_ardour/editor_canvas_events.cc | 16 ++++++++++------ gtk2_ardour/editor_mouse.cc | 26 +++++++++++++++----------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 03317c6605..c2e70b0f49 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -176,19 +176,23 @@ Editor::canvas_scroll_event (GdkEventScroll *event, bool from_canvas) } bool -Editor::track_canvas_button_press_event (GdkEventButton */*event*/) +Editor::track_canvas_button_press_event (GdkEventButton *event) { - selection->clear (); - _track_canvas->grab_focus(); + if (!Keyboard::is_context_menu_event (event)) { + selection->clear (); + } + _track_canvas->grab_focus(); return false; } bool Editor::track_canvas_button_release_event (GdkEventButton *event) { - if (_drags->active ()) { - _drags->end_grab ((GdkEvent*) event); - } + if (!Keyboard::is_context_menu_event (event)) { + if (_drags->active ()) { + _drags->end_grab ((GdkEvent*) event); + } + } return false; } diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 0f1849329c..7921122666 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1472,20 +1472,24 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT return true; } - /* see if we're finishing a drag */ + bool were_dragging = false; - bool were_dragging = false; - if (_drags->active ()) { - bool const r = _drags->end_grab (event); - if (r) { - /* grab dragged, so do nothing else */ - return true; - } + if (!Keyboard::is_context_menu_event (&event->button)) { - were_dragging = true; - } + /* see if we're finishing a drag */ + + if (_drags->active ()) { + bool const r = _drags->end_grab (event); + if (r) { + /* grab dragged, so do nothing else */ + return true; + } + + were_dragging = true; + } - update_region_layering_order_editor (); + update_region_layering_order_editor (); + } /* edit events get handled here */