From: Paul Davis Date: Thu, 19 Jan 2012 00:14:58 +0000 (+0000) Subject: enter and exit node edit mode with dbl-click in any MIDI region X-Git-Tag: 3.0-beta3~162 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=c43f1d22c8f308169a9b99a2b53b045c81044195;p=ardour.git enter and exit node edit mode with dbl-click in any MIDI region git-svn-id: svn://localhost/ardour2/branches/3.0@11268 d708f5d6-7413-0410-9779-e7cbd77b26cf --- diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 7d088d0684..bfcfb29c03 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -834,6 +834,11 @@ RegionMoveDrag::finished (GdkEvent* ev, bool movement_occurred) if (!movement_occurred) { /* just a click */ + if (ev->type == GDK_2BUTTON_PRESS && ev->button.button == 1) { + /* double click - internal edit mode */ + Glib::RefPtr act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit")); + act->activate (); + } return; } diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index a7c3946ff3..61eb39d093 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -835,7 +835,10 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT } if (internal_editing ()) { - /* no region drags in internal edit mode */ + if (event->type == GDK_2BUTTON_PRESS && event->button.button == 1) { + Glib::RefPtr act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit")); + act->activate (); + } break; } @@ -848,7 +851,7 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT add_region_drag (item, event, clicked_regionview); } - if (_join_object_range_state == JOIN_OBJECT_RANGE_OBJECT && !selection->regions.empty()) { + if (!internal_editing() && (_join_object_range_state == JOIN_OBJECT_RANGE_OBJECT && !selection->regions.empty())) { _drags->add (new SelectionDrag (this, clicked_axisview->get_selection_rect (clicked_selection)->rect, SelectionDrag::SelectionMove)); } @@ -1149,6 +1152,16 @@ Editor::button_press_handler_2 (ArdourCanvas::Item* item, GdkEvent* event, ItemT bool Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type) { + if (event->type == GDK_2BUTTON_PRESS) { + if (_drags->active()) { + _drags->end_grab (event); + } else { + Glib::RefPtr act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit")); + act->activate (); + } + return true; + } + if (event->type != GDK_BUTTON_PRESS) { return false; } diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index bab797c8c7..554dcc9b9e 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -343,7 +343,7 @@ MidiRegionView::canvas_event(GdkEvent* ev) return button_press (&ev->button); case GDK_2BUTTON_PRESS: - return true; + return false; case GDK_BUTTON_RELEASE: return button_release (&ev->button);