ignore context menu click events, notably during drag but also for a couple of other purposes

This commit is contained in:
Paul Davis 2015-01-26 16:37:53 -05:00
parent 1a71eedea0
commit ebd3178809
2 changed files with 25 additions and 17 deletions

View file

@ -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;
}

View file

@ -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 */