diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 59627fb61c..24edc85879 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4046,7 +4046,7 @@ FadeInDrag::setup_pointer_offset () } void -FadeInDrag::motion (GdkEvent* event, bool) +FadeInDrag::motion (GdkEvent* event, bool first_motion) { timepos_t tpos (timepos_t (_editor->canvas_event_sample (event)) + snap_delta (event->button.state)); @@ -4075,6 +4075,10 @@ FadeInDrag::motion (GdkEvent* event, bool) continue; } + if (first_motion) { + tmp->drag_start (); + } + tmp->reset_fade_in_shape_width (tmp->audio_region(), fade_length); } @@ -4116,6 +4120,8 @@ FadeInDrag::finished (GdkEvent* event, bool movement_occurred) continue; } + tmp->drag_end (); + boost::shared_ptr alist = tmp->audio_region()->fade_in(); XMLNode &before = alist->get_state(); @@ -4145,6 +4151,8 @@ FadeInDrag::aborted (bool) continue; } + tmp->drag_end (); + tmp->reset_fade_in_shape_width (tmp->audio_region(), tmp->audio_region()->fade_in()->back()->when.samples()); } } @@ -4177,7 +4185,7 @@ FadeOutDrag::setup_pointer_offset () } void -FadeOutDrag::motion (GdkEvent* event, bool) +FadeOutDrag::motion (GdkEvent* event, bool first_motion) { samplecnt_t fade_length; @@ -4205,6 +4213,10 @@ FadeOutDrag::motion (GdkEvent* event, bool) continue; } + if (first_motion) { + tmp->drag_start (); + } + tmp->reset_fade_out_shape_width (tmp->audio_region(), fade_length); } @@ -4247,6 +4259,8 @@ FadeOutDrag::finished (GdkEvent* event, bool movement_occurred) continue; } + tmp->drag_end (); + boost::shared_ptr alist = tmp->audio_region()->fade_out(); XMLNode &before = alist->get_state(); @@ -4276,6 +4290,8 @@ FadeOutDrag::aborted (bool) continue; } + tmp->drag_end (); + tmp->reset_fade_out_shape_width (tmp->audio_region(), tmp->audio_region()->fade_out()->back()->when.samples()); } }