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)
This commit is contained in:
parent
fea3fb9e71
commit
3d8bccb508
|
@ -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<set<boost::shared_ptr<Playlist> >::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<DraggingView>::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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -771,8 +771,7 @@ class TrimDrag : public RegionDrag
|
|||
public:
|
||||
enum Operation {
|
||||
StartTrim,
|
||||
EndTrim,
|
||||
ContentsTrim,
|
||||
EndTrim
|
||||
};
|
||||
|
||||
TrimDrag (Editor *, ArdourCanvas::Item *, RegionView*, std::list<RegionView*> const &, bool preserve_fade_anchor = false);
|
||||
|
|
Loading…
Reference in New Issue
Block a user