From 3d8bccb508d6e9659219344f3218c465da091890 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Tue, 15 Jun 2021 09:22:58 -0500 Subject: [PATCH] Slip Contents Drag: remove ContentsTrim modifier from the region boundaries *now that you can grab "anywhere" in the region, trim edges are inferior because they are hard to hit *modifier had to change anyway (since CTRL is used as a copy-drag on both mac and win), so that invalidates prior muscle memory *potentially frees up modifier on the trim edge for some other purpose (anchored_trim) --- gtk2_ardour/editor_drag.cc | 62 ++++++++++---------------------------- gtk2_ardour/editor_drag.h | 3 +- 2 files changed, 17 insertions(+), 48 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 7efc37c620..f450e4a8c5 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3036,31 +3036,25 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*) samplepos_t const pf = adjusted_current_sample (event); setup_snap_delta (MusicSample(region_start, 0)); - if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_contents_modifier ())) { - /* Move the contents of the region around without changing the region bounds */ - _operation = ContentsTrim; - _preview_video = false; - Drag::start_grab (event, _editor->cursors()->trimmer); - } else { - /* These will get overridden for a point trim.*/ - if (pf < (region_start + region_length/2)) { - /* closer to front */ - _operation = StartTrim; - if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_anchored_modifier ())) { - Drag::start_grab (event, _editor->cursors()->anchored_left_side_trim); - } else { - Drag::start_grab (event, _editor->cursors()->left_side_trim); - } + /* These will get overridden for a point trim.*/ + if (pf < (region_start + region_length/2)) { + /* closer to front */ + _operation = StartTrim; + if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_anchored_modifier ())) { + Drag::start_grab (event, _editor->cursors()->anchored_left_side_trim); } else { - /* closer to end */ - _operation = EndTrim; - if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_anchored_modifier ())) { - Drag::start_grab (event, _editor->cursors()->anchored_right_side_trim); - } else { - Drag::start_grab (event, _editor->cursors()->right_side_trim); - } + Drag::start_grab (event, _editor->cursors()->left_side_trim); + } + } else { + /* closer to end */ + _operation = EndTrim; + if (Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::trim_anchored_modifier ())) { + Drag::start_grab (event, _editor->cursors()->anchored_right_side_trim); + } else { + Drag::start_grab (event, _editor->cursors()->right_side_trim); } } + /* jump trim disabled for now if (Keyboard::modifier_state_equals (event->button.state, Keyboard::trim_jump_modifier ())) { _jump_position_when_done = true; @@ -3074,9 +3068,6 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*) case EndTrim: show_verbose_cursor_duration (region_start, region_end); break; - case ContentsTrim: - show_verbose_cursor_time (_primary->region()->start ()); - break; } show_view_preview (_operation == StartTrim ? region_start : region_end); @@ -3091,7 +3082,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) RegionView* rv = _primary; pair >::iterator,bool> insert_result; - sampleoffset_t sample_delta = 0; MusicSample adj_sample = adjusted_sample (_drags->current_pointer_sample () + snap_delta (event->button.state), event, true); samplecnt_t dt = adj_sample.sample - raw_grab_sample () + _pointer_sample_offset - snap_delta (event->button.state); @@ -3107,9 +3097,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) case EndTrim: trim_type = "Region end trim"; break; - case ContentsTrim: - trim_type = "Region content trim"; - break; default: assert(0); break; @@ -3188,8 +3175,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) if (len < -dt) dt = max(dt, -len); } break; - case ContentsTrim: - break; } } @@ -3232,15 +3217,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) } break; - case ContentsTrim: - { - sample_delta = (last_pointer_sample() - adjusted_current_sample(event, false)); - - for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { - i->view->move_contents (sample_delta); - } - } - break; } switch (_operation) { @@ -3250,9 +3226,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) case EndTrim: show_verbose_cursor_duration (rv->region()->position(), rv->region()->last_sample()); break; - case ContentsTrim: - show_verbose_cursor_time (rv->region()->start ()); - break; } show_view_preview ((_operation == StartTrim ? rv->region()->position() : rv->region()->last_sample())); } @@ -3379,9 +3352,6 @@ TrimDrag::setup_pointer_sample_offset () case EndTrim: _pointer_sample_offset = raw_grab_sample() - i->initial_end; break; - case ContentsTrim: - _pointer_sample_offset = 0; - break; } } diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index aeb5bc3fbb..3b5247661e 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -771,8 +771,7 @@ class TrimDrag : public RegionDrag public: enum Operation { StartTrim, - EndTrim, - ContentsTrim, + EndTrim }; TrimDrag (Editor *, ArdourCanvas::Item *, RegionView*, std::list const &, bool preserve_fade_anchor = false);