diff options
Diffstat (limited to 'src/arc-context.cpp')
| -rw-r--r-- | src/arc-context.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/arc-context.cpp b/src/arc-context.cpp index 21fd41a49..31e05a6ca 100644 --- a/src/arc-context.cpp +++ b/src/arc-context.cpp @@ -149,6 +149,28 @@ void CArcContext::finish() { CEventContext::finish(); } +SPArcContext::~SPArcContext() { + SPEventContext *ec = SP_EVENT_CONTEXT(this); + SPArcContext *ac = SP_ARC_CONTEXT(this); + + ec->enableGrDrag(false); + + ac->sel_changed_connection.disconnect(); + ac->sel_changed_connection.~connection(); + + delete ec->shape_editor; + ec->shape_editor = NULL; + + /* fixme: This is necessary because we do not grab */ + if (ac->item) { + sp_arc_finish(ac); + } + + delete ac->_message_context; + + //G_OBJECT_CLASS(sp_arc_context_parent_class)->dispose(object); +} + static void sp_arc_context_dispose(GObject *object) { SPEventContext *ec = SP_EVENT_CONTEXT(object); |
