diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-06 12:00:29 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-06 15:25:41 +0100 |
commit | 51a61bd4aca15c860d301b687d582a39193089e2 (patch) | |
tree | 61c8533b9bc6323e16e47964f442acb4b976fe04 | |
parent | 4c8101190a7c9cbc3326253fef38810fc265ac19 (diff) |
DOCX import: fix relativeFrom=page, align=right handling
Change-Id: I9c1df594457a8ccbbebf4ede61cc3a637ecc7023
-rw-r--r-- | sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 2 | ||||
-rw-r--r-- | writerfilter/source/dmapper/GraphicImport.cxx | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 24ffb76f5f49..a1a0d43572d5 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1561,6 +1561,8 @@ DECLARE_OOXMLIMPORT_TEST(testWpgNested, "wpg-nested.docx") uno::Reference<drawing::XShapeDescriptor> xShapeDescriptor(xGroup->getByIndex(0), uno::UNO_QUERY); // This was a com.sun.star.drawing.CustomShape, due to lack of handling of groupshapes inside groupshapes. CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.GroupShape"), xShapeDescriptor->getShapeType()); + // This was text::RelOrientation::PAGE_FRAME, effectively placing the group shape on the left side of the page instead of the right one. + CPPUNIT_ASSERT_EQUAL(text::RelOrientation::PAGE_RIGHT, getProperty<sal_Int16>(xGroup, "HoriOrientRelation")); } DECLARE_OOXMLIMPORT_TEST(textboxWpgOnly, "textbox-wpg-only.docx") diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index 3f7e0cbd3b7c..fab878880d94 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -1303,6 +1303,15 @@ void GraphicImport::lcl_sprm(Sprm & rSprm) m_pImpl->nHoriRelation = pHandler->relation(); m_pImpl->nHoriOrient = pHandler->orientation(); m_pImpl->nLeftPosition = pHandler->position(); + if (m_pImpl->nHoriRelation == text::RelOrientation::PAGE_FRAME && m_pImpl->nHoriOrient == text::HoriOrientation::RIGHT) + { + // If the shape is relative from page and aligned to + // right, then set the relation to right and clear the + // orientation, that provides the same visual result as + // Word. + m_pImpl->nHoriRelation = text::RelOrientation::PAGE_RIGHT; + m_pImpl->nHoriOrient = text::HoriOrientation::NONE; + } } } } |