From a9b336108198d7f18c0a532c5dac714a0a1515da Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 30 Jun 2014 09:17:03 -0400 Subject: use Editor::effective_mouse_mode() inside Editor::button_selection(); clean up special-case of fade in/out handles and mouse mode --- gtk2_ardour/editor_mouse.cc | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index d0287328c5..25525336f4 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -490,7 +490,7 @@ Editor::button_selection (ArdourCanvas::Item* /*item*/, GdkEvent* event, ItemTyp to cut notes or regions. */ - MouseMode eff_mouse_mode = mouse_mode; + MouseMode eff_mouse_mode = effective_mouse_mode (); if (get_smart_mode() && eff_mouse_mode == MouseRange && event->button.button == 3 && item_type == RegionItem) { /* context clicks are always about object properties, even if @@ -499,6 +499,20 @@ Editor::button_selection (ArdourCanvas::Item* /*item*/, GdkEvent* event, ItemTyp eff_mouse_mode = MouseObject; } + /* special case: allow drag of region fade in/out in object mode with join object/range enabled */ + if (get_smart_mode()) { + switch (item_type) { + case FadeInHandleItem: + case FadeInTrimHandleItem: + case FadeOutHandleItem: + case FadeOutTrimHandleItem: + eff_mouse_mode = MouseObject; + break; + default: + break; + } + } + if (((mouse_mode != MouseObject) && (mouse_mode != MouseAudition || item_type != RegionItem) && (mouse_mode != MouseTimeFX || item_type != RegionItem) && @@ -567,7 +581,6 @@ Editor::button_selection (ArdourCanvas::Item* /*item*/, GdkEvent* event, ItemTyp case StartCrossFadeItem: case EndCrossFadeItem: if (eff_mouse_mode != MouseRange) { - cerr << "Should be setting selected regionview\n"; set_selected_regionview_from_click (press, op); } else if (event->type == GDK_BUTTON_PRESS) { set_selected_track_as_side_effect (op); @@ -717,8 +730,17 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT Editing::MouseMode eff = effective_mouse_mode (); /* special case: allow drag of region fade in/out in object mode with join object/range enabled */ - if (item_type == FadeInHandleItem || item_type == FadeOutHandleItem) { - eff = MouseObject; + if (get_smart_mode()) { + switch (item_type) { + case FadeInHandleItem: + case FadeInTrimHandleItem: + case FadeOutHandleItem: + case FadeOutTrimHandleItem: + eff = MouseObject; + break; + default: + break; + } } /* there is no Range mode when in internal edit mode */ -- cgit v1.2.3