[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-1' - sw/source
Michael Stahl (via logerrit)
logerrit at kemper.freedesktop.org
Mon Sep 16 09:47:10 UTC 2019
sw/source/core/layout/flylay.cxx | 2 ++
1 file changed, 2 insertions(+)
New commits:
commit f31c9c0fb9b01abd83cb22c751ebf20ed68fedb8
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Tue Jul 2 18:31:46 2019 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Mon Sep 16 11:46:35 2019 +0200
sw: fix moving of at-page anchored flys to different page
The problem is that some flys are anchored at a page with Y pos 35k and
are moved to a page with Y pos 17k, while retaining
mbFrameAreaPositionValid=true and their existing Y position.
The flys will never be painted or even invalidated again because their
position is off-page.
This is somehow a regression from commit
0b53f794ffb2550288610b9488f11fd21ab85aae - without the new mutation of
an empty-page to a normal page due to at-page flys by resetting
m_bEmptyPage in SwPageFrame::UpdateAttr_() on it the problem didn't
happen.
Due to the above commit, the page 3 is not an empty-page any more as it
has 2 flys anchored on it; previously those flys were moved (only in the
layout, not in the model!) to page 4 by some funny code in
SwRootFrame::AssertPageFlys(), which at first glance seems like an
improvement.
Change-Id: Ia071931b26e64245f90233232dd2ac0d64365ce6
Reviewed-on: https://gerrit.libreoffice.org/75009
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>
(cherry picked from commit 5cee586a97a11c23dd252accc42099bd5e9b4187)
Reviewed-on: https://gerrit.libreoffice.org/75049
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index 36bc46ba762c..fea1582c226c 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -854,6 +854,8 @@ void SwPageFrame::AppendFlyToPage( SwFlyFrame *pNew )
pNew->InvalidatePage( this );
// #i28701#
pNew->UnlockPosition();
+ // needed to reposition at-page anchored flys moved from different page
+ pNew->InvalidateObjPos();
// Notify accessible layout. That's required at this place for
// frames only where the anchor is moved. Creation of new frames
More information about the Libreoffice-commits
mailing list