diff --git a/src/sp-object.cpp b/src/sp-object.cpp
index 4a1a2e09ed84a6a28825af91485be617cbaec2a9..5f6bf779fabc2d90c011ce32469ee5ddf736a517 100644 (file)
--- a/src/sp-object.cpp
+++ b/src/sp-object.cpp
object->_collection_policy = SPObject::COLLECT_WITH_PARENT;
new (&object->_delete_signal) sigc::signal<void, SPObject *>();
+ new (&object->_position_changed_signal) sigc::signal<void, SPObject *>();
object->_successor = NULL;
object->_label = NULL;
}
spobject->_delete_signal.~signal();
+ spobject->_position_changed_signal.~signal();
}
namespace {
g_return_if_fail(SP_IS_OBJECT(object));
g_return_if_fail(object->parent == parent);
+ sp_object_invoke_release(object);
+
SPObject *prev=NULL;
for ( SPObject *child = parent->children ; child && child != object ;
child = child->next )
object->next = NULL;
object->parent = NULL;
- sp_object_invoke_release(object);
parent->_updateTotalHRefCount(-object->_total_hrefcount);
sp_object_unref(object, parent);
}
@@ -771,6 +774,7 @@ static void sp_object_order_changed(SPObject *object, Inkscape::XML::Node *child
g_return_if_fail(ochild != NULL);
SPObject *prev = new_ref ? sp_object_get_child_by_repr(object, new_ref) : NULL;
sp_object_reorder(ochild, prev);
+ ochild->_position_changed_signal.emit(ochild);
}
/**
g_assert(object != NULL);
g_assert(SP_IS_OBJECT(object));
- // we need to remember our parent
- // g_assert(!object->parent);
- g_assert(!object->next);
g_assert(object->document);
g_assert(object->repr);