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
This commit is contained in:
Paul Davis 2012-01-19 00:14:58 +00:00
parent 4774527c5b
commit c43f1d22c8
3 changed files with 21 additions and 3 deletions

View file

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

View file

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

View file

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