diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-02-05 18:20:53 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-02-05 19:34:31 -0500 |
commit | 76445331033d45697ea026d553ad7be751ed6ad7 (patch) | |
tree | e00a22387a1528024799384ec9beb872bbc897c1 /gtk2_ardour | |
parent | e6752fb72957ed59f2370ad8add0cf84e93a088f (diff) |
implement RangeMarkerBarDrag::abort
Conflicts:
gtk2_ardour/editor_drag.cc
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 16 | ||||
-rw-r--r-- | 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 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); |