diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-31 15:05:48 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-31 17:49:00 +0000 |
commit | 50223ea6e212b60b7d33839c2753c5601fb50f95 (patch) | |
tree | c86be1491f5b6d52c44a06714c005997a6858bc2 /sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx | |
parent | a88837470d7a01e63c28ac3930c1f10d84dc218d (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.
Change-Id: Idc5cad7d86662008a92ff3bf5fbb3806aa2c7b07
Reviewed-on: https://gerrit.libreoffice.org/23702
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx')
-rw-r--r-- | sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx b/sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx index 45d8f09762d6..09b6172f7bbd 100644 --- a/sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx +++ b/sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx @@ -81,10 +81,12 @@ void SwToLayoutAnchoredObjectPosition::CalcPosition() } // #i26791# - get vertical offset to frame anchor position. SwTwips nVertOffsetToFrameAnchorPos( 0L ); + const SwFormatSurround& rSurround = rFrameFormat.GetSurround(); + const bool bWrapThrough = rSurround.GetSurround() == SURROUND_THROUGHT; SwTwips nRelPosY = _GetVertRelPos( GetAnchorFrame(), GetAnchorFrame(), eVertOrient, aVert.GetRelationOrient(), aVert.GetPos(), - rLR, rUL, nVertOffsetToFrameAnchorPos ); + rLR, rUL, bWrapThrough, nVertOffsetToFrameAnchorPos ); // keep the calculated relative vertical position - needed for filters // (including the xml-filter) |