sw/qa/extras/layout/data/tdf138782.docx      |binary
 sw/qa/extras/layout/layout2.cxx              |   16 ++++++++++++++++
 writerfilter/source/dmapper/DomainMapper.cxx |    5 +++++
 writerfilter/source/filter/WriterFilter.cxx  |    1 -
 4 files changed, 21 insertions(+), 1 deletion(-)

New commits:
commit 5812fb81013cc124a9b6a0b9912a34cc715fc495
Author:     Attila Bakos (NISZ) <bakos.attilakar...@nisz.hu>
AuthorDate: Thu Apr 22 13:26:58 2021 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Tue May 4 19:33:39 2021 +0200

    tdf#138782 DOCX import: fix frame positions of old docs
    
    by limiting AddFrameOffsets compatibility option
    for docs created by MSO 2010 or older.
    
    Likely regression from commit 355d25eac764713f4d52eac801ade6e2ff1deab0
    (n#779627: added quite some compat options from the ww8
    filter on writerfilter).
    
    This patch fixes several bugs, which were
    collected as duplicates by Gábor Kelemen.
    
    Change-Id: I106e90c4bf00bb0b6a8986615cb3ad9c4828d5b3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114476
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/sw/qa/extras/layout/data/tdf138782.docx 
b/sw/qa/extras/layout/data/tdf138782.docx
new file mode 100644
index 000000000000..8bad2ae1b8c4
Binary files /dev/null and b/sw/qa/extras/layout/data/tdf138782.docx differ
diff --git a/sw/qa/extras/layout/layout2.cxx b/sw/qa/extras/layout/layout2.cxx
index c8919f155c60..074f099d963e 100644
--- a/sw/qa/extras/layout/layout2.cxx
+++ b/sw/qa/extras/layout/layout2.cxx
@@ -2801,6 +2801,22 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf137185)
     // Before the patch it failed, because the text appeared 2 times on each 
other.
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf138782)
+{
+    CPPUNIT_ASSERT(createDoc("tdf138782.docx"));
+    auto pXml = parseLayoutDump();
+    CPPUNIT_ASSERT(pXml);
+
+    // Without the fix it failed because the 3rd shape was outside the page:
+    // - Expected less than: 13327
+    // - Actual  : 14469
+
+    CPPUNIT_ASSERT_LESS(
+        getXPath(pXml, "/root/page/infos/bounds", "right").toInt32(),
+        getXPath(pXml, 
"/root/page/body/txt[8]/anchored/SwAnchoredDrawObject/bounds", "right")
+            .toInt32());
+}
+
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf135035)
 {
     createDoc("tdf135035.docx");
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx 
b/writerfilter/source/dmapper/DomainMapper.cxx
index fddbea557c6c..fa6018f9e940 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -249,6 +249,11 @@ DomainMapper::~DomainMapper()
             aGrabBag.update(aProperties);
             xDocProps->setPropertyValue("InteropGrabBag", 
uno::Any(aGrabBag.getAsConstPropertyValueList()));
         }
+
+        // tdf#138782: for docs created in MS Word 2010 and older 
(compatibilityMode <= 14)
+        m_pImpl->SetDocumentSettingsProperty(
+            "AddFrameOffsets",
+            uno::Any(14 >= 
m_pImpl->GetSettingsTable()->GetWordCompatibilityMode()));
     }
     catch( const uno::Exception& ) {}
 
diff --git a/writerfilter/source/filter/WriterFilter.cxx 
b/writerfilter/source/filter/WriterFilter.cxx
index dcfdf29a60f7..772ca5032b76 100644
--- a/writerfilter/source/filter/WriterFilter.cxx
+++ b/writerfilter/source/filter/WriterFilter.cxx
@@ -304,7 +304,6 @@ void WriterFilter::setTargetDocument(const 
uno::Reference<lang::XComponent>& xDo
     uno::Reference<beans::XPropertySet> xSettings(
         xFactory->createInstance("com.sun.star.document.Settings"), 
uno::UNO_QUERY);
 
-    xSettings->setPropertyValue("AddFrameOffsets", uno::makeAny(true));
     xSettings->setPropertyValue("AddVerticalFrameOffsets", uno::makeAny(true));
     xSettings->setPropertyValue("UseOldNumbering", uno::makeAny(false));
     xSettings->setPropertyValue("IgnoreFirstLineIndentInNumbering", 
uno::makeAny(false));
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to