From 31e6f73bd36db2b9069d61ffe0be61b313c009b2 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 5 Feb 2015 18:20:53 -0500 Subject: [PATCH] implement RangeMarkerBarDrag::abort --- gtk2_ardour/editor_drag.cc | 16 ++++++++++++++-- gtk2_ardour/editor_drag.h | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index b53cc40e8c..bc563493d6 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4479,6 +4479,15 @@ RangeMarkerBarDrag::RangeMarkerBarDrag (Editor* e, ArdourCanvas::Item* i, Operat DEBUG_TRACE (DEBUG::Drags, "New RangeMarkerBarDrag\n"); } +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 *) { @@ -4648,9 +4657,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 (); + } } MouseZoomDrag::MouseZoomDrag (Editor* e, ArdourCanvas::Item* i) diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index bb35d99b98..93f619c856 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -1031,7 +1031,8 @@ public: }; RangeMarkerBarDrag (Editor *, ArdourCanvas::Item *, Operation); - + ~RangeMarkerBarDrag (); + void start_grab (GdkEvent *, Gdk::Cursor* c = 0); void motion (GdkEvent *, bool); void finished (GdkEvent *, bool);