diff options
| author | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-05-10 20:44:06 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-05-10 20:44:06 +0000 |
| commit | ef5f5f784221dbf04469b803c3bba265b0f93803 (patch) | |
| tree | 2accaf8311b81456eecd6588fc4ff777da7eff9d /src | |
| parent | Style rewrite: 'text-decoration' requires access to style of ancestor element... (diff) | |
| download | inkscape-ef5f5f784221dbf04469b803c3bba265b0f93803.tar.gz inkscape-ef5f5f784221dbf04469b803c3bba265b0f93803.zip | |
Tentative fix for LPEs and undo
Fixed bugs:
- https://launchpad.net/bugs/1299948
(bzr r13341.1.5)
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/parameter/path.cpp | 5 | ||||
| -rw-r--r-- | src/sp-path.cpp | 18 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index cdbbef1db..44d414942 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -118,6 +118,11 @@ PathParam::param_readSVGValue(const gchar * strvalue) // Now do the attaching, which emits the changed signal. try { ref.attach(Inkscape::URI(href)); + //lp:1299948 + SPItem* i = ref.getObject(); + if (i) { + linked_modified_callback(i, SP_OBJECT_MODIFIED_FLAG); + } // else: document still processing new events. Repr of the linked object not created yet. } catch (Inkscape::BadURIException &e) { g_warning("%s", e.what()); ref.detach(); diff --git a/src/sp-path.cpp b/src/sp-path.cpp index cbb61b0f6..d1fb850e1 100644 --- a/src/sp-path.cpp +++ b/src/sp-path.cpp @@ -140,7 +140,22 @@ void SPPath::build(SPDocument *document, Inkscape::XML::Node *repr) { SPShape::build(document, repr); - this->readAttr( "inkscape:original-d" ); + //this->readAttr( "inkscape:original-d" ); //lp1299948 + if (gchar const* s = this->getRepr()->attribute("inkscape:original-d")) + { + //write it to XML, and to my curve, but don't update patheffects + Geom::PathVector pv = sp_svg_read_pathv(s); + SPCurve *curve = new SPCurve(pv); + + if (_curve_before_lpe) { + _curve_before_lpe = _curve_before_lpe->unref(); + } + + if (curve) { + _curve_before_lpe = curve->ref(); + } + //this->getRepr()->setAttribute("inkscape:original-d", s); + } this->readAttr( "d" ); /* d is a required attribute */ @@ -314,7 +329,6 @@ g_message("sp_path_update_patheffect"); #ifdef PATH_VERBOSE g_message("sp_path_update_patheffect writes 'd' attribute"); #endif - if (_curve) { gchar *str = sp_svg_write_path(this->_curve->get_pathvector()); repr->setAttribute("d", str); |
