diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/layout/data/in_056132_mod.odt | bin | 0 -> 13647 bytes | |||
-rw-r--r-- | sw/qa/extras/layout/layout.cxx | 49 | ||||
-rw-r--r-- | sw/source/core/layout/calcmove.cxx | 7 |
3 files changed, 49 insertions, 7 deletions
diff --git a/sw/qa/extras/layout/data/in_056132_mod.odt b/sw/qa/extras/layout/data/in_056132_mod.odt Binary files differnew file mode 100644 index 000000000000..548401063bdd --- /dev/null +++ b/sw/qa/extras/layout/data/in_056132_mod.odt diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index 438321555e89..0536a54d8b7e 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -3807,6 +3807,55 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf122607_regression) aTempFile.EnableKillingFile(); } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf150616) +{ + discardDumpedLayout(); + if (mxComponent.is()) + mxComponent->dispose(); + + OUString const pName("in_056132_mod.odt"); + + OUString const url(m_directories.getURLFromSrc(DATA_DIRECTORY) + pName); + + // note: must set Hidden property, so that SfxFrameViewWindow_Impl::Resize() + // does *not* forward initial VCL Window Resize and thereby triggers a + // layout which does not happen on soffice --convert-to pdf. + std::vector<beans::PropertyValue> aFilterOptions = { + { beans::PropertyValue("Hidden", -1, uno::Any(true), beans::PropertyState_DIRECT_VALUE) }, + }; + + std::cout << pName << ":\n"; + + // inline the loading because currently properties can't be passed... + mxComponent = loadFromDesktop(url, "com.sun.star.text.TextDocument", + comphelper::containerToSequence(aFilterOptions)); + uno::Sequence<beans::PropertyValue> props(comphelper::InitPropertySequence({ + { "FilterName", uno::Any(OUString("writer_pdf_Export")) }, + })); + utl::TempFile aTempFile; + uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); + xStorable->storeToURL(aTempFile.GetURL(), props); + + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + CPPUNIT_ASSERT(pXmlDoc); + + // this one was 0 height + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[2]/LineBreak", "Line", + "Important information here!"); + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[2]/infos/bounds", "height", + "253"); + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[2]/infos/bounds", "top", + "7925"); + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[3]/LineBreak", "Line", + "xxx 111 "); + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[3]/infos/bounds", "height", + "697"); + assertXPath(pXmlDoc, "/root/page[1]/body/tab[3]/row[2]/cell[2]/txt[3]/infos/bounds", "top", + "8178"); + + aTempFile.EnableKillingFile(); +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testBtlrCell) { SwDoc* pDoc = createSwDoc(DATA_DIRECTORY, "btlr-cell.odt"); diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx index e40e1dab6ef3..4894c8524cf3 100644 --- a/sw/source/core/layout/calcmove.cxx +++ b/sw/source/core/layout/calcmove.cxx @@ -1727,13 +1727,6 @@ void SwContentFrame::MakeAll(vcl::RenderContext* /*pRenderContext*/) // an unsolvable problem: We ignore it with all our power. if ( !bMoveable || IsUndersized() ) { - if( !bMoveable && IsInTab() ) - { - tools::Long nDiff = -aRectFnSet.BottomDist( getFrameArea(), aRectFnSet.GetPrtBottom(*GetUpper()) ); - tools::Long nReal = GetUpper()->Grow( nDiff ); - if( nReal ) - continue; - } break; } |