sw/source/core/layout/frmtool.cxx | 43 +++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 16 deletions(-)
New commits: commit 960d72c0d721b08dcf331c8caf51ea4a99b501ef Author: Michael Stahl <mst...@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(); + } } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits