summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_mouse.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-06-30 09:17:03 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-30 09:17:03 -0400
commita9b336108198d7f18c0a532c5dac714a0a1515da (patch)
treeff2f0a801a467e4024d31c4d47153f612aaf2310 /gtk2_ardour/editor_mouse.cc
parent33339090c39ecd5f096bb6055af2dc8df65ae378 (diff)
use Editor::effective_mouse_mode() inside Editor::button_selection(); clean up special-case of fade in/out handles and mouse mode
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r--gtk2_ardour/editor_mouse.cc30
1 files changed, 26 insertions, 4 deletions
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 */