[Libreoffice-commits] .: sw/source
Michael Stahl
mst at kemper.freedesktop.org
Tue Jun 5 04:03:40 PDT 2012
sw/source/core/layout/frmtool.cxx | 43 +++++++++++++++++++++++---------------
1 file changed, 27 insertions(+), 16 deletions(-)
New commits:
commit 960d72c0d721b08dcf331c8caf51ea4a99b501ef
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jun 5 12:59:30 2012 +0200
Revert "fdo#39006: Fixed layout loop"
This reverts commit 2a22e664811e10ca58ec66ba8fd10b1a6185c178.
i don't have an opinion whether this commit is wrong or right,
but nobody has time to investigate the layout changes that it causes,
so since it's not a regression itself it's safest to revert it.
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index d1ff0b3..4cf9a6c 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -724,22 +724,33 @@ SwFlyNotify::~SwFlyNotify()
( !pFly->ISA(SwFlyFreeFrm) ||
!static_cast<SwFlyFreeFrm*>(pFly)->IsNoMoveOnCheckClip() ) )
{
- // lock position
- pFly->LockPosition();
-
- if ( !pFly->ConsiderForTextWrap() )
- {
- // indicate that object has to be considered for text wrap
- pFly->SetConsiderForTextWrap( true );
- // invalidate 'background' in order to allow its 'background'
- // to wrap around it.
- pFly->NotifyBackground( pFly->GetPageFrm(),
- pFly->GetObjRectWithSpaces(),
- PREP_FLY_ARRIVE );
- // invalidate position of anchor frame in order to force
- // a re-format of the anchor frame, which also causes a
- // re-format of the invalid previous frames of the anchor frame.
- pFly->AnchorFrm()->InvalidatePos();
+ // #i54138# - suppress restart of the layout process
+ // on changed frame height.
+ // Note: It doesn't seem to be necessary and can cause layout loops.
+ if ( bPosChgd )
+ {
+ // indicate a restart of the layout process
+ pFly->SetRestartLayoutProcess( true );
+ }
+ else
+ {
+ // lock position
+ pFly->LockPosition();
+
+ if ( !pFly->ConsiderForTextWrap() )
+ {
+ // indicate that object has to be considered for text wrap
+ pFly->SetConsiderForTextWrap( true );
+ // invalidate 'background' in order to allow its 'background'
+ // to wrap around it.
+ pFly->NotifyBackground( pFly->GetPageFrm(),
+ pFly->GetObjRectWithSpaces(),
+ PREP_FLY_ARRIVE );
+ // invalidate position of anchor frame in order to force
+ // a re-format of the anchor frame, which also causes a
+ // re-format of the invalid previous frames of the anchor frame.
+ pFly->AnchorFrm()->InvalidatePos();
+ }
}
}
}
More information about the Libreoffice-commits
mailing list