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
This commit is contained in:
Ben Loftis 2023-03-17 11:55:09 -05:00
parent 5be4674adb
commit 4de53fa600
1 changed files with 18 additions and 2 deletions

View File

@ -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<AutomationList> 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<AutomationList> 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());
}
}