summaryrefslogtreecommitdiffstats
path: root/src/ui/clipboard.cpp
diff options
context:
space:
mode:
authorLiam P. White <inkscapebronyat-signgmaildotcom>2014-03-18 23:34:31 +0000
committerLiam P. White <inkscapebronyat-signgmaildotcom>2014-03-18 23:34:31 +0000
commit95b10e0707ee0e16055d5e514e1d05c929d49b5a (patch)
treec6ffa6349cfa6c13d1bdbb03aafdac48f997c7dc /src/ui/clipboard.cpp
parentUpdated to trunk (diff)
downloadinkscape-95b10e0707ee0e16055d5e514e1d05c929d49b5a.tar.gz
inkscape-95b10e0707ee0e16055d5e514e1d05c929d49b5a.zip
Added in new toy effect "Taper Strokes," readded a missing header file, bugfixes
(bzr r13090.1.25)
Diffstat (limited to 'src/ui/clipboard.cpp')
-rw-r--r--src/ui/clipboard.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
index 8e2502545..2dabf1884 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);