From d07fc485d46f431405a3f6a002f951a08c559677 Mon Sep 17 00:00:00 2001 From: Patrick Jaap Date: Tue, 10 Apr 2018 13:24:04 +0200 Subject: [PATCH] tdf#116486 Consider upper margin in paragraph positioning with flys The problem was the following: There is a paragraph with an upper margin defined. Also, there is a flyframe intersecting this upper margin. The desired behavior is to reposition the parapgraph, such that it (including it's upper margin) is located below the flyframe. This patch increases the bounding rectangle of the paragraph by the upper margin. For compatibility, there is a compat-flag query. I re-used a related one. Change-Id: I9dbc75e07e2ba0658fdbbfa9989be24a68660713 Reviewed-on: https://gerrit.libreoffice.org/52685 Tested-by: Jenkins Reviewed-by: Miklos Vajna --- sw/qa/extras/ooxmlimport/data/tdf116486.docx | Bin 0 -> 22455 bytes sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 6 ++++++ sw/source/core/text/itrform2.cxx | 12 ++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 sw/qa/extras/ooxmlimport/data/tdf116486.docx diff --git a/sw/qa/extras/ooxmlimport/data/tdf116486.docx b/sw/qa/extras/ooxmlimport/data/tdf116486.docx new file mode 100644 index 0000000000000000000000000000000000000000..c6a4891b0cf45586b094675f4c87392f974a67af GIT binary patch literal 22455 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, xDrawPage->getCount()); } +DECLARE_OOXMLIMPORT_TEST(testTdf116486, "tdf116486.docx") +{ + OUString aTop = parseDump("/root/page/body/txt/Special", "nHeight"); + CPPUNIT_ASSERT_EQUAL( OUString("4006"), aTop ); +} + // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx index 7fc2ae4005df..f05a5f872509 100644 --- a/sw/source/core/text/itrform2.cxx +++ b/sw/source/core/text/itrform2.cxx @@ -2278,12 +2278,24 @@ void SwTextFormatter::CalcFlyWidth( SwTextFormatInfo &rInf ) SwRect aLine( rInf.X() + nLeftMin, nTop, rInf.RealWidth() - rInf.X() + nLeftMar - nLeftMin , nHeight ); + // tdf#116486: consider also the upper margin from getFramePrintArea because intersections + // with this additional space should lead to repositioning of paragraphs + // For compatibility we grab a related compat flag: + if ( GetTextFrame()->GetTextNode()->getIDocumentSettingAccess()->get(DocumentSettingId::ADD_VERTICAL_FLY_OFFSETS) ) + { + const long nUpper = m_pFrame->getFramePrintArea().Top(); + // Increase the rectangle + if( nUpper > 0 && nTop >= nUpper ) + aLine.SubTop( nUpper ); + } SwRect aLineVert( aLine ); if ( m_pFrame->IsRightToLeft() ) m_pFrame->SwitchLTRtoRTL( aLineVert ); if ( m_pFrame->IsVertical() ) m_pFrame->SwitchHorizontalToVertical( aLineVert ); + + // GetFrame(...) determines and returns the intersection rectangle SwRect aInter( rTextFly.GetFrame( aLineVert ) ); if ( m_pFrame->IsRightToLeft() )