summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-02-05 18:20:53 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-02-05 19:34:31 -0500
commit76445331033d45697ea026d553ad7be751ed6ad7 (patch)
treee00a22387a1528024799384ec9beb872bbc897c1 /gtk2_ardour
parente6752fb72957ed59f2370ad8add0cf84e93a088f (diff)
implement RangeMarkerBarDrag::abort
Conflicts: gtk2_ardour/editor_drag.cc
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_drag.cc16
-rw-r--r--gtk2_ardour/editor_drag.h3
2 files changed, 16 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 7ac8f9c16a..d82156bfd1 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -4507,6 +4507,15 @@ RangeMarkerBarDrag::RangeMarkerBarDrag (Editor* e, ArdourCanvas::Item* i, Operat
_drag_rect->set_outline_color (ARDOUR_UI::config()->color ("range drag rect"));
}
+RangeMarkerBarDrag::~RangeMarkerBarDrag()
+{
+ /* normal canvas items will be cleaned up when their parent group is deleted. But
+ this item is created as the child of a long-lived parent group, and so we
+ need to explicitly delete it.
+ */
+ delete _drag_rect;
+}
+
void
RangeMarkerBarDrag::start_grab (GdkEvent* event, Gdk::Cursor *)
{
@@ -4714,9 +4723,12 @@ RangeMarkerBarDrag::finished (GdkEvent* event, bool movement_occurred)
}
void
-RangeMarkerBarDrag::aborted (bool)
+RangeMarkerBarDrag::aborted (bool movement_occured)
{
- /* XXX: TODO */
+ if (movement_occured) {
+ _crect->hide ();
+ _drag_rect->hide ();
+ }
}
void
diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h
index 66ea64eb54..64e894c092 100644
--- a/gtk2_ardour/editor_drag.h
+++ b/gtk2_ardour/editor_drag.h
@@ -995,7 +995,8 @@ public:
};
RangeMarkerBarDrag (Editor *, ArdourCanvas::Item *, Operation);
-
+ ~RangeMarkerBarDrag ();
+
void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
void motion (GdkEvent *, bool);
void finished (GdkEvent *, bool);