summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter/item.cpp
diff options
context:
space:
mode:
authorJabiertxof <jtx@jtx>2017-01-01 23:30:14 +0000
committerJabiertxof <jtx@jtx>2017-01-01 23:30:14 +0000
commitba0a43458620f76e235fc9d61539582d7887311f (patch)
tree365325a7cba436caf0dbd6c298190f4b700c75c5 /src/live_effects/parameter/item.cpp
parentUpdate to trunk (diff)
downloadinkscape-ba0a43458620f76e235fc9d61539582d7887311f.tar.gz
inkscape-ba0a43458620f76e235fc9d61539582d7887311f.zip
attemt to mirror
(bzr r15356.1.11)
Diffstat (limited to 'src/live_effects/parameter/item.cpp')
-rw-r--r--src/live_effects/parameter/item.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/live_effects/parameter/item.cpp b/src/live_effects/parameter/item.cpp
index 8caea4e26..0a46ec7ce 100644
--- a/src/live_effects/parameter/item.cpp
+++ b/src/live_effects/parameter/item.cpp
@@ -135,25 +135,31 @@ ItemParam::addCanvasIndicators(SPLPEItem const*/*lpeitem*/, std::vector<Geom::Pa
void
-ItemParam::start_listening(SPObject * to)
+ItemParam::start_listening(SPObject * to, bool force)
{
if ( to == NULL ) {
return;
}
- linked_delete_connection = to->connectDelete(sigc::mem_fun(*this, &ItemParam::linked_delete));
- linked_modified_connection = to->connectModified(sigc::mem_fun(*this, &ItemParam::linked_modified));
- if (SP_IS_ITEM(to)) {
- linked_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::mem_fun(*this, &ItemParam::linked_transformed));
+ if (!linked_delete_connection.connected() || force) {
+ std::cout << "111111111111111111\n";
+ linked_delete_connection = to->connectDelete(sigc::mem_fun(*this, &ItemParam::linked_delete));
+ linked_modified_connection = to->connectModified(sigc::mem_fun(*this, &ItemParam::linked_modified));
+ if (SP_IS_ITEM(to)) {
+ linked_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::mem_fun(*this, &ItemParam::linked_transformed));
+ }
+ linked_modified(to, SP_OBJECT_MODIFIED_FLAG); // simulate linked_modified signal, so that path data is updated
}
- linked_modified(to, SP_OBJECT_MODIFIED_FLAG); // simulate linked_modified signal, so that path data is updated
}
void
ItemParam::quit_listening(void)
{
- linked_modified_connection.disconnect();
- linked_delete_connection.disconnect();
- linked_transformed_connection.disconnect();
+ if (linked_delete_connection.connected()) {
+ std::cout << "2222222222222222222222\n";
+ linked_modified_connection.disconnect();
+ linked_delete_connection.disconnect();
+ linked_transformed_connection.disconnect();
+ }
}
void
@@ -161,7 +167,7 @@ ItemParam::ref_changed(SPObject */*old_ref*/, SPObject *new_ref)
{
quit_listening();
if ( new_ref ) {
- start_listening(new_ref);
+ start_listening(new_ref, true);
}
}