summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/vml/vmlshape.cxx16
-rw-r--r--sw/qa/extras/ooxmlimport/data/WordArt.docxbin0 -> 10417 bytes
-rw-r--r--sw/qa/extras/ooxmlimport/ooxmlimport.cxx15
3 files changed, 31 insertions, 0 deletions
diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx
index f98c717cb830..842a65cb2b02 100644
--- a/oox/source/vml/vmlshape.cxx
+++ b/oox/source/vml/vmlshape.cxx
@@ -58,6 +58,9 @@
#include "oox/vml/vmltextbox.hxx"
#include "oox/core/xmlfilterbase.hxx"
#include "oox/helper/containerhelper.hxx"
+#include "svx/EnhancedCustomShapeTypeNames.hxx"
+#include <svx/unoapi.hxx>
+#include <svx/svdoashp.hxx>
using ::com::sun::star::beans::XPropertySet;
using ::com::sun::star::uno::Any;
@@ -534,6 +537,19 @@ Reference< XShape > SimpleShape::implConvertAndInsert( const Reference< XShapes
}
Reference< XShape > xShape = mrDrawing.createAndInsertXShape( maService, rxShapes, aShapeRect );
+ SdrObject* pShape = GetSdrObjectFromXShape( xShape );
+ if( pShape && getShapeType() >= 0 )
+ {
+ OUString aShapeType;
+ aShapeType = EnhancedCustomShapeTypeNames::Get( static_cast< MSO_SPT >(getShapeType()) );
+ //The resize autoshape to fit text attr of FontWork/Word-Art should always be false
+ //for the fallback geometry.
+ if(aShapeType.startsWith("fontwork"))
+ {
+ pShape->SetMergedItem(SdrTextAutoGrowHeightItem(false));
+ pShape->SetMergedItem(SdrTextAutoGrowWidthItem(false));
+ }
+ }
convertShapeProperties( xShape );
// Handle left/right/top/bottom wrap distance.
diff --git a/sw/qa/extras/ooxmlimport/data/WordArt.docx b/sw/qa/extras/ooxmlimport/data/WordArt.docx
new file mode 100644
index 000000000000..3960a15aadf4
--- /dev/null
+++ b/sw/qa/extras/ooxmlimport/data/WordArt.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index eca47da487e2..371b303b8ef0 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -982,6 +982,21 @@ DECLARE_OOXMLIMPORT_TEST(testN792778, "n792778.docx")
CPPUNIT_ASSERT_EQUAL(sal_Int32(11684), xInnerShape->getPosition().Y);
}
+DECLARE_OOXMLIMPORT_TEST(testWordArtResizing, "WordArt.docx")
+{
+ /* The Word-Arts and watermarks were getting resized automatically, It was as if they were
+ getting glued to the fallback geometry(the sdrObj) and were getting bound to the font size.
+ The test-case esures the original height and width of the word-art is not changed while importing*/
+
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount());
+
+ uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(10105), xShape->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4755), xShape->getSize().Height);
+}
+
DECLARE_OOXMLIMPORT_TEST(testGroupshapeLine, "groupshape-line.docx")
{
/*