diff options
author | Xisco Fauli <anistenis@gmail.com> | 2015-10-27 01:43:48 +0100 |
---|---|---|
committer | Björn Michaelsen <bjoern.michaelsen@canonical.com> | 2015-11-07 21:31:24 +0000 |
commit | 3056a6b6e39b57c66ebaf5210264b689f02f5fc3 (patch) | |
tree | da94a386400825e183e0dd66cbd1b61d243b412b | |
parent | 04783fd91832fa01a5b096f395edd7ad4f9c0f6b (diff) |
a different way.
This is just a temporal fix as this should be fix by implementing support for 'clipPath'
Change-Id: I451e0a9ae0466c027505672393d623d7ac363e79
Reviewed-on: https://gerrit.libreoffice.org/19615
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Christina Roßmanith <ChrRossmanith@web.de>
-rw-r--r-- | filter/source/svg/svgreader.cxx | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/filter/source/svg/svgreader.cxx b/filter/source/svg/svgreader.cxx index ce94e0fdff66..009425a8a4e3 100644 --- a/filter/source/svg/svgreader.cxx +++ b/filter/source/svg/svgreader.cxx @@ -90,19 +90,24 @@ template<typename Func> void visitElements(Func& rFunc, rFunc.push(); // recurse over children - if (eCaller == SHAPE_WRITER && rElem->getTagName() == "defs") { - return; - } uno::Reference<xml::dom::XNodeList> xChildren( rElem->getChildNodes() ); const sal_Int32 nNumNodes( xChildren->getLength() ); for( sal_Int32 i=0; i<nNumNodes; ++i ) { - if( xChildren->item(i)->getNodeType() == xml::dom::NodeType_ELEMENT_NODE ) - visitElements( rFunc, - uno::Reference<xml::dom::XElement>( - xChildren->item(i), - uno::UNO_QUERY_THROW), - eCaller ); + if( xChildren->item(i)->getNodeType() == xml::dom::NodeType_ELEMENT_NODE ){ + //tdf#65864 + //TODO: support clipPath + if( !(eCaller == SHAPE_WRITER && + xChildren->item(i)->getNodeName() == "path" && + rElem->getTagName() == "clipPath" && + rElem->getParentNode()->getNodeName() == "defs") ){ + visitElements( rFunc, + uno::Reference<xml::dom::XElement>( + xChildren->item(i), + uno::UNO_QUERY_THROW), + eCaller ); + } + } } // children processing done |