diff options
author | Robin Gareus <robin@gareus.org> | 2014-05-31 15:15:46 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-05-31 15:15:46 +0200 |
commit | 12d498906758dc9c5007a6e58e63b38281ad074a (patch) | |
tree | f4991cbbab257733d42d05d6ead88bab3e16bbcc /gtk2_ardour | |
parent | ef3c27bc1de3b5131f534906dd8beac63349adea (diff) |
show fade+trim handles only if the operation is possible
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/audio_region_view.cc | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc index bab9a97007..0067f21774 100644 --- a/gtk2_ardour/audio_region_view.cc +++ b/gtk2_ardour/audio_region_view.cc @@ -572,6 +572,11 @@ AudioRegionView::reset_fade_in_shape_width (boost::shared_ptr<AudioRegion> ar, f fade_in_trim_handle->set_x1 (handle_size); } + if (fade_in_handle->visible()) { + //see comment for drag_start + entered(false); + } + if (pwidth < 5) { hide_start_xfade(); return; @@ -653,6 +658,10 @@ AudioRegionView::reset_fade_out_shape_width (boost::shared_ptr<AudioRegion> ar, fade_out_trim_handle->set_x1 (1 + trim_handle_right); } + if (fade_out_handle->visible()) { + //see comment for drag_start + entered(false); + } /* don't show shape if its too small */ if (pwidth < 5) { @@ -1331,12 +1340,22 @@ AudioRegionView::entered (bool internal_editing) fade_out_handle->raise_to_top (); } if (fade_in_trim_handle) { - fade_in_trim_handle->show (); - fade_in_trim_handle->raise_to_top (); + boost::shared_ptr<AudioRegion> ar (audio_region()); + if (!ar->locked() && (ar->fade_in()->back()->when > 64 || (ar->can_trim() & Trimmable::FrontTrimEarlier))) { + fade_in_trim_handle->show (); + fade_in_trim_handle->raise_to_top (); + } else { + fade_in_trim_handle->hide (); + } } if (fade_out_trim_handle) { - fade_out_trim_handle->show (); - fade_out_trim_handle->raise_to_top (); + boost::shared_ptr<AudioRegion> ar (audio_region()); + if (!ar->locked() && (ar->fade_out()->back()->when > 64 || (ar->can_trim() & Trimmable::EndTrimLater))) { + fade_out_trim_handle->show (); + fade_out_trim_handle->raise_to_top (); + } else { + fade_out_trim_handle->hide (); + } } } } @@ -1626,8 +1645,15 @@ void AudioRegionView::drag_end () { TimeAxisViewItem::drag_end (); - //see comment for drag_start + + if (fade_in_handle && fade_in_handle->visible()) { + // lenght of region or fade changed, re-check + // if fade_in_trim_handle or fade_out_trim_handle should + // be visible. -- If the fade_in_handle is visible + // we have focus and are not in internal edit mode. + entered(false); + } } void |