diff options
| author | Liam P. White <inkscapebrony@gmail.com> | 2014-08-08 15:04:56 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebrony@gmail.com> | 2014-08-08 15:04:56 +0000 |
| commit | ca8023872ae0d9f7b99688502b9bdba232ec5627 (patch) | |
| tree | 73092b0aa6ea3e697da66d1d6316d3a2d78a4f3e /src/ui/clipboard.cpp | |
| parent | Update to experimental r13440 (diff) | |
| parent | Small tweak to bbox calculation (diff) | |
| download | inkscape-ca8023872ae0d9f7b99688502b9bdba232ec5627.tar.gz inkscape-ca8023872ae0d9f7b99688502b9bdba232ec5627.zip | |
Update to experimental r13464
(bzr r13341.5.14)
Diffstat (limited to 'src/ui/clipboard.cpp')
| -rw-r--r-- | src/ui/clipboard.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 8e2502545..1209b19cd 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -601,6 +601,12 @@ Glib::ustring ClipboardManagerImpl::getPathParameter(SPDesktop* desktop) */ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) { + // https://bugs.launchpad.net/inkscape/+bug/1293979 + // basically, when we do a depth-first search, we're stopping + // at the first object to be <svg:path> or <svg:text>. + // but that could then return the id of the object's + // clip path or mask, not the original path! + SPDocument *tempdoc = _retrieveClipboard(); // any target will do here if ( tempdoc == NULL ) { _userWarn(desktop, _("Nothing on the clipboard.")); @@ -608,6 +614,9 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) } Inkscape::XML::Node *root = tempdoc->getReprRoot(); + // 1293979: strip out the defs of the document + root->removeChild(tempdoc->getDefs()->getRepr()); + Inkscape::XML::Node *repr = sp_repr_lookup_name(root, "svg:path", -1); // unlimited search depth if ( repr == NULL ) { repr = sp_repr_lookup_name(root, "svg:text", -1); |
