From 0f46d7b1076550054491d8668a7fcc9d21271574 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 Conflicts: gtk2_ardour/editor_canvas_events.cc --- gtk2_ardour/editor_canvas_events.cc | 18 +++++++++++------- gtk2_ardour/editor_mouse.cc | 26 +++++++++++++++----------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index c1696c9f6c..18e07cc2f2 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -176,21 +176,25 @@ 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) { - begin_reversible_selection_op (_("Clear Selection Click (track canvas)")); - selection->clear (); - commit_reversible_selection_op(); _track_canvas->grab_focus(); + if (!Keyboard::is_context_menu_event (event)) { + begin_reversible_selection_op (_("Clear Selection Click (track canvas)")); + selection->clear (); + commit_reversible_selection_op(); + } 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 27d538a527..e17ddfb41e 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1191,20 +1191,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 */