diff options
author | Ben Loftis <ben@glw.com> | 2009-03-02 22:17:27 +0000 |
---|---|---|
committer | Ben Loftis <ben@glw.com> | 2009-03-02 22:17:27 +0000 |
commit | 7c7108c16744d9957686fc955db2a721778d5d08 (patch) | |
tree | d5b6c9c6a4584518407d835c5f9e4ff45df9e970 /gtk2_ardour/editor_mouse.cc | |
parent | 2fd92474d1bdffd6028de284aa251fde8ec2ae04 (diff) |
standardize some menu actions across CD and loop/punch rulers. also allow right-click drag to create regions, which may be more discoverable than ctrl-click drag because the other rulers already use right-click for creating markers
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4725 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 4228bcbd4d..b860b3b268 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -519,6 +519,24 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp button_selection (item, event, item_type); + //ctrl-drag or right-click-drag on a "range" ruler should start a range drag + if (event->type == GDK_BUTTON_PRESS) { + if (event->button.button == 3 || ( (event->button.button == 1) && (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) ))) { + if (item_type == TransportMarkerBarItem) { + start_range_markerbar_op (item, event, CreateTransportMarker); + return true; + } + if (item_type == RangeMarkerBarItem) { + start_range_markerbar_op (item, event, CreateRangeMarker); + return true; + } + if (item_type == CdMarkerBarItem) { + start_range_markerbar_op (item, event, CreateCDMarker); + return true; + } + } + } + if (drag_info.item == 0 && (Keyboard::is_delete_event (&event->button) || Keyboard::is_context_menu_event (&event->button) || @@ -581,34 +599,6 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp return true; break; - - case RangeMarkerBarItem: - if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) { - start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event); - } else { - start_range_markerbar_op (item, event, CreateRangeMarker); - } - return true; - break; - - case CdMarkerBarItem: - if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) { - start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event); - } else { - start_range_markerbar_op (item, event, CreateCDMarker); - } - return true; - break; - - case TransportMarkerBarItem: - if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) { - start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event); - } else { - start_range_markerbar_op (item, event, CreateTransportMarker); - } - return true; - break; - default: break; } @@ -1795,6 +1785,7 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item case MarkerViewHandleEndItem: /* </CMT Additions> */ if (drag_info.item && (event->motion.state & Gdk::BUTTON1_MASK || + (event->motion.state & Gdk::BUTTON3_MASK) || (event->motion.state & Gdk::BUTTON2_MASK))) { if (!from_autoscroll) { maybe_autoscroll_horizontally (&event->motion); |