diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2019-10-24 16:21:53 +0000 |
|---|---|---|
| committer | Tavmjong Bah <tavmjong@free.fr> | 2019-10-24 16:21:53 +0000 |
| commit | 2b9eeffadbce92b9aa38e3edd9211329b0ec8c97 (patch) | |
| tree | c7fbad475d80ab2a8039c69fa19d12988ca7df94 /src/object/uri-references.cpp | |
| parent | update expected_rendering/test-baseline-shift.png (diff) | |
| download | inkscape-2b9eeffadbce92b9aa38e3edd9211329b0ec8c97.tar.gz inkscape-2b9eeffadbce92b9aa38e3edd9211329b0ec8c97.zip | |
Fix gradient/mesh handles after object with gradient/mesh cloned.
Fixes https://bugs.launchpad.net/inkscape/+bug/453067
Fixes https://gitlab.com/inkscape/inkscape/issues/130
Diffstat (limited to 'src/object/uri-references.cpp')
| -rw-r--r-- | src/object/uri-references.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/object/uri-references.cpp b/src/object/uri-references.cpp index 35c1d7e17..b257eecef 100644 --- a/src/object/uri-references.cpp +++ b/src/object/uri-references.cpp @@ -47,7 +47,10 @@ URIReference::URIReference(SPDocument *owner_document) g_assert(_owner_document != nullptr); } -URIReference::~URIReference() { detach(); } +URIReference::~URIReference() +{ + detach(); +} /* * The main ideas here are: @@ -106,8 +109,6 @@ bool URIReference::_acceptObject(SPObject *obj) const return true; } - - void URIReference::attach(const URI &uri) { SPDocument *document = nullptr; @@ -188,7 +189,6 @@ void URIReference::attach(const URI &uri) _setObject(document->getObjectById(id)); _connection = document->connectIdChanged(id, sigc::mem_fun(*this, &URIReference::_setObject)); - g_free(id); } @@ -213,12 +213,12 @@ void URIReference::_setObject(SPObject *obj) _obj = obj; _release_connection.disconnect(); - if (_obj) { + if (_obj && (!_owner || !_owner->cloned)) { _obj->hrefObject(_owner); _release_connection = _obj->connectRelease(sigc::mem_fun(*this, &URIReference::_release)); } _changed_signal.emit(old_obj, _obj); - if (old_obj) { + if (old_obj && (!_owner || !_owner->cloned)) { /* release the old object _after_ the signal emission */ old_obj->unhrefObject(_owner); } |
