diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-09 21:07:18 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-09 21:07:18 +0000 |
commit | 2c3f54250df53d474e67b507d282e0783ce8eef4 (patch) | |
tree | 22ff68d034febcc5389ddf7ddafe38da38244c0b /gtk2_ardour/editor_selection.cc | |
parent | 9c88023faf6d63806fa747eda541294f22a1e5f3 (diff) |
clever fixes to make keyboard-driven trimming work nicely
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2856 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r-- | gtk2_ardour/editor_selection.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index f1248fb13a..8e1d35ca69 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -1325,3 +1325,28 @@ Editor::deselect_all () { selection->clear (); } + +Editor::ExclusiveRegionSelection::ExclusiveRegionSelection (Editor& ed, RegionView* rv) + : editor (ed), + regionview (rv) +{ + + if (!rv || ed.current_mouse_mode() != Editing::MouseObject) { + return; + } + + if (ed.get_selection().regions.empty() && !ed.get_selection().selected (rv)) { + ed.get_selection().set (rv, false); + remove = true; + } else { + remove = false; + } +} + +Editor::ExclusiveRegionSelection::~ExclusiveRegionSelection () +{ + if (remove) { + editor.get_selection().remove (regionview); + } +} + |