summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-04-20 21:04:30 +0200
committerXisco Faulí <xiscofauli@libreoffice.org>2020-04-28 11:42:36 +0200
commit5a9e5b3d297094fc014f37d0d3843be82b2f4706 (patch)
tree64193bd5a846182842120d99dc5a05fc79667f0c
parente1dd961e46a016f2641a96d5632757c8db4b1953 (diff)
tdf#131446 DOCX import: restrict IncreasedAnchoredObjectSpacing further
Regression from commit 8b73bafbc18acb4dd8911d2f2de8158d98eb6144 (tdf#115719 DOCX import: increase paragraph spacing for anchored objects, 2018-02-14), this is another case where the workaround for the Word layout bug is not needed. tdf115719.docx and tdf115719b.docx are tweaked to have <wp:anchor ... behindDoc="1"> for 1 shape, as the original bugdoc has it. This allows us to render both the tdf#115719 and tdf#131446 bug documents the same way as Word does. (cherry picked from commit 249428202be04ab9a2271a9cd48922523fa03bc4) Change-Id: I0c3f197c3360882cd64f8dcf286c6051dc11d674 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92978 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf115719.docxbin18338 -> 18668 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf115719b.docxbin18845 -> 19145 bytes
-rw-r--r--sw/qa/extras/ooxmlimport/data/tdf115719b.docxbin19839 -> 19843 bytes
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx22
4 files changed, 22 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf115719.docx b/sw/qa/extras/ooxmlexport/data/tdf115719.docx
index 4eda09a98fa2..99806d4dc860 100644
--- a/sw/qa/extras/ooxmlexport/data/tdf115719.docx
+++ b/sw/qa/extras/ooxmlexport/data/tdf115719.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/data/tdf115719b.docx b/sw/qa/extras/ooxmlexport/data/tdf115719b.docx
index a632e3df0e7a..f3e3925c8869 100644
--- a/sw/qa/extras/ooxmlexport/data/tdf115719b.docx
+++ b/sw/qa/extras/ooxmlexport/data/tdf115719b.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/data/tdf115719b.docx b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
index 4cb13228443a..7d91108bc0bd 100644
--- a/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
+++ b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx
Binary files differ
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index d83d2bd831dd..fbc471415b4c 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -1233,6 +1233,28 @@ void SectionPropertyMap::HandleIncreasedAnchoredObjectSpacing(DomainMapper_Impl&
if (rAnchor.m_aAnchoredObjects.size() < 4)
continue;
+ // Ignore this paragraph if none of the objects are wrapped in the background.
+ sal_Int32 nOpaqueCount = 0;
+ for (const auto& rAnchored : rAnchor.m_aAnchoredObjects)
+ {
+ uno::Reference<beans::XPropertySet> xShape(rAnchored.m_xAnchoredObject, uno::UNO_QUERY);
+ if (!xShape.is())
+ {
+ continue;
+ }
+
+ bool bOpaque = true;
+ xShape->getPropertyValue("Opaque") >>= bOpaque;
+ if (!bOpaque)
+ {
+ ++nOpaqueCount;
+ }
+ }
+ if (nOpaqueCount < 1)
+ {
+ continue;
+ }
+
// Analyze the anchored objects of this paragraph, now that we know the
// page width.
sal_Int32 nShapesWidth = 0;