From 4de53fa600b235657698c4fcef3f09383b232007 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Fri, 17 Mar 2023 11:55:09 -0500 Subject: [PATCH] make regions transparent during fade-handle drags * during drag and trim operations, we use "dragging region" transparency so you can see the audio data beneath your region(s) * we already do this for region-end-trim fade drags, which is a special kind of trim operation, accessed from the 'lower' drag handle * now we also trigger transparency for regular fade trims. see discussion at: https://discourse.ardour.org/t/regions-transparency-in-7-2/108060/31 --- gtk2_ardour/editor_drag.cc | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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()); } }