summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-09 21:07:18 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-09 21:07:18 +0000
commit2c3f54250df53d474e67b507d282e0783ce8eef4 (patch)
tree22ff68d034febcc5389ddf7ddafe38da38244c0b /gtk2_ardour/editor_selection.cc
parent9c88023faf6d63806fa747eda541294f22a1e5f3 (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.cc25
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);
+ }
+}
+