diff options
Diffstat (limited to 'writerfilter/source/dmapper/OLEHandler.cxx')
-rw-r--r-- | writerfilter/source/dmapper/OLEHandler.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/OLEHandler.cxx b/writerfilter/source/dmapper/OLEHandler.cxx index 24ec24c8f844..ae1e13a0041b 100644 --- a/writerfilter/source/dmapper/OLEHandler.cxx +++ b/writerfilter/source/dmapper/OLEHandler.cxx @@ -43,6 +43,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/text/XTextDocument.hpp> #include <com/sun/star/text/WrapTextMode.hpp> #include <com/sun/star/uno/XComponentContext.hpp> @@ -100,6 +101,12 @@ void OLEHandler::lcl_attribute(Id rName, Value & rVal) { uno::Reference< drawing::XShape > xTempShape; rVal.getAny() >>= xTempShape; + + // Control shape is handled on a different code path + uno::Reference< lang::XServiceInfo > xSInfo( xTempShape, uno::UNO_QUERY_THROW ); + if(xSInfo->supportsService("com.sun.star.drawing.ControlShape")) + break; + if( xTempShape.is() ) { m_xShape.set( xTempShape ); |