summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-01-19 00:14:58 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-01-19 00:14:58 +0000
commitc43f1d22c8f308169a9b99a2b53b045c81044195 (patch)
treeee9ebfeedbb962ab32687c5d6f91e76a2db06c2b /gtk2_ardour
parent4774527c5b1cdff807c1932bc93cf317401042a5 (diff)
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
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_drag.cc5
-rw-r--r--gtk2_ardour/editor_mouse.cc17
-rw-r--r--gtk2_ardour/midi_region_view.cc2
3 files changed, 21 insertions, 3 deletions
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<Action> 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<Action> 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<Action> 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);