diff options
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/shape/ShapeContextHandler.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/oox/source/shape/ShapeContextHandler.cxx b/oox/source/shape/ShapeContextHandler.cxx index 53a692774e19..4ed6298e36fa 100644 --- a/oox/source/shape/ShapeContextHandler.cxx +++ b/oox/source/shape/ShapeContextHandler.cxx @@ -205,7 +205,19 @@ ShapeContextHandler::getDrawingShapeContext() (new oox::vml::DrawingFragment ( *mxFilterBase, msRelationFragmentPath, *mpDrawing ))); } - + else + { + // Reset the handler if fragment path has changed + OUString sHandlerFragmentPath = dynamic_cast<ContextHandler *>(mxDrawingFragmentHandler.get())->getFragmentPath(); + if ( !msRelationFragmentPath.equals(sHandlerFragmentPath) ) + { + mxDrawingFragmentHandler.clear(); + mxDrawingFragmentHandler.set + (dynamic_cast<ContextHandler *> + (new oox::vml::DrawingFragment + ( *mxFilterBase, msRelationFragmentPath, *mpDrawing ))); + } + } return mxDrawingFragmentHandler; } |