summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_mouse.cc
diff options
context:
space:
mode:
authorBen Loftis <ben@glw.com>2009-03-02 22:17:27 +0000
committerBen Loftis <ben@glw.com>2009-03-02 22:17:27 +0000
commit7c7108c16744d9957686fc955db2a721778d5d08 (patch)
treed5b6c9c6a4584518407d835c5f9e4ff45df9e970 /gtk2_ardour/editor_mouse.cc
parent2fd92474d1bdffd6028de284aa251fde8ec2ae04 (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.cc47
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);