diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-31 15:05:48 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-04-04 10:05:27 +0000 |
commit | 3e242e732e0aba170870098e4ce51d49f979eab9 (patch) | |
tree | 8fa7398898a530ff99658502fb07ac44a9efd113 /writerfilter | |
parent | f25eca3f230c170b46d7ce9f40842161a50b1883 (diff) |
tdf#98987 sw: add AddVerticalFrameOffsets compat mode
The situation is the following: we have a text frame, with at least two
anchored objects: one is wrapped not-wrap-through, the other is. In case
the non-wrap-though one shifts the text content of the text frame right or
down, then layout may or may not want to re-consider what is the top
left corner of the text frame for anchoring purposes.
Regarding the x position, sw layout repositioned the anchor point
depending on the AddFrameOffsets compat mode: it's enabled for documents
imported from Word, disabled otherwise. Regarding the y position, no
repositioning was done, however the bugdoc shows that Word does the same
repositioning on the vertical axis as well.
Add a new AddVerticalFrameOffsets compat mode that enables vertical
repositioning as well, and enable that mode for documents imported from
DOCX.
Also (squashed in, as the second commit partly undoes what the first one
did):
tdf#99004 SwAnchoredObjectPosition: handle textboxes when determining surround
Writer TextBoxes are always wrapped "through", so that they can appear
inside their shapes. However, the surround of the shape may influence
its position. So when surround is asked for anchor position purposes,
take the surround of the TextBox's "parent" shape instead of the one of
the TextBox directly.
With this, the textbox in the bugdoc is properly positioned inside its
parent shape as expected. (The problem only happens when at least two
shapes are anchored to the same paragraph.)
(cherry picked from commits 911261a3a581b9f2f4262f1d5403d9be3bbecf63,
f5e0236566b913aebb1376d97c7d37a23c69bd84,
50223ea6e212b60b7d33839c2753c5601fb50f95 and
cd1b2f923e0b0be89a5d1c8cbc647133aac09ed5)
Conflicts:
sw/qa/extras/uiwriter/uiwriter.cxx
sw/source/core/inc/anchoredobjectposition.hxx
sw/source/core/objectpositioning/anchoredobjectposition.cxx
sw/source/core/text/txtfrm.cxx
sw/source/uibase/uno/SwXDocumentSettings.cxx
Change-Id: Idc5cad7d86662008a92ff3bf5fbb3806aa2c7b07
Reviewed-on: https://gerrit.libreoffice.org/23739
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/filter/WriterFilter.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/writerfilter/source/filter/WriterFilter.cxx b/writerfilter/source/filter/WriterFilter.cxx index 546b852f8060..4dffb4ca64e6 100644 --- a/writerfilter/source/filter/WriterFilter.cxx +++ b/writerfilter/source/filter/WriterFilter.cxx @@ -288,6 +288,7 @@ void WriterFilter::setTargetDocument(const uno::Reference< lang::XComponent >& x uno::Reference< beans::XPropertySet > xSettings(xFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY); xSettings->setPropertyValue("AddFrameOffsets", uno::makeAny(sal_True)); + xSettings->setPropertyValue("AddVerticalFrameOffsets", uno::makeAny(sal_True)); xSettings->setPropertyValue("UseOldNumbering", uno::makeAny(sal_False)); xSettings->setPropertyValue("IgnoreFirstLineIndentInNumbering", uno::makeAny(sal_False)); xSettings->setPropertyValue("DoNotResetParaAttrsForNumFont", uno::makeAny(sal_False)); |