summaryrefslogtreecommitdiffstats
path: root/src/arc-context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/arc-context.cpp')
-rw-r--r--src/arc-context.cpp22
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);