sw/qa/extras/odfexport/data/relh-page-tdf80282.odt |binary sw/qa/extras/odfexport/odfexport.cxx | 7 +++++++ sw/source/core/layout/fly.cxx | 6 ++++++ 3 files changed, 13 insertions(+)
New commits: commit cffecd3c8d2d6b34726b8820468fadef93dd553d Author: Justin Luth <justin_l...@sil.org> Date: Tue Feb 20 11:41:15 2018 +0300 tdf#80282 swpagerelsize: corner case frame size max Before the swpagerelsize commits, (specifically 7c7fdf3e97bbf2301f9938082d4d44162f4ec3c0), the max size was always Prt(). The regression comes if the RelFrame is a pageFrame (like when the image is anchored to the page). Then sometimes no maximum is set. Change-Id: If1e93ce670bd0908eb2d1f89dabbe9861163d29e Reviewed-on: https://gerrit.libreoffice.org/50034 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/sw/qa/extras/odfexport/data/relh-page-tdf80282.odt b/sw/qa/extras/odfexport/data/relh-page-tdf80282.odt new file mode 100644 index 000000000000..6b3c583d366f Binary files /dev/null and b/sw/qa/extras/odfexport/data/relh-page-tdf80282.odt differ diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index a602011ec992..ae5ae1735e35 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -983,6 +983,13 @@ DECLARE_ODFEXPORT_TEST(testRelhPage, "relh-page.odt") CPPUNIT_ASSERT_EQUAL(sal_Int32(3168), parseDump("/root/page/body/txt/anchored/fly/infos/bounds", "height").toInt32()); } +DECLARE_ODFEXPORT_TEST(testRelhPageTdf80282, "relh-page-tdf80282.odt") +{ + uno::Reference<drawing::XShape> xTextFrame = getShape(1); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Height", sal_Int32(8391), parseDump("//anchored/fly/infos/bounds", "height").toInt32()); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Width", sal_Int32(5953), parseDump("//anchored/fly/infos/bounds", "width").toInt32()); +} + DECLARE_ODFEXPORT_TEST(testRelwPage, "relw-page.odt") { uno::Reference<drawing::XShape> xTextFrame = getShape(1); diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 2ae868df995f..038dcdd58b5e 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -2357,8 +2357,14 @@ Size SwFlyFrame::CalcRel( const SwFormatFrameSize &rSz ) const // When size is a relative to page size, ignore size of SwBodyFrame. if (rSz.GetWidthPercentRelation() != text::RelOrientation::PAGE_FRAME) nRelWidth = std::min( nRelWidth, pRel->getFramePrintArea().Width() ); + else if ( pRel->IsPageFrame() ) + nRelWidth = std::min( nRelWidth, pRel->getFrameArea().Width() ); + if (rSz.GetHeightPercentRelation() != text::RelOrientation::PAGE_FRAME) nRelHeight = std::min( nRelHeight, pRel->getFramePrintArea().Height() ); + else if ( pRel->IsPageFrame() ) + nRelHeight = std::min( nRelHeight, pRel->getFrameArea().Height() ); + if( !pRel->IsPageFrame() ) { const SwPageFrame* pPage = FindPageFrame(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits