diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-06-05 12:59:30 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-06-05 13:01:27 +0200 |
commit | 960d72c0d721b08dcf331c8caf51ea4a99b501ef (patch) | |
tree | c344911bdddb6bdd152cccfaa18932d602c8d5bf /sw | |
parent | df26c5f47ec3e80e0697bbf38882f0ed7e3aa1f7 (diff) |
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.
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/layout/frmtool.cxx | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index d1ff0b3b566d..4cf9a6c8c755 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(); + } } } } |