summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-06-05 12:59:30 +0200
committerMichael Stahl <mstahl@redhat.com>2012-06-05 13:01:27 +0200
commit960d72c0d721b08dcf331c8caf51ea4a99b501ef (patch)
treec344911bdddb6bdd152cccfaa18932d602c8d5bf
parentdf26c5f47ec3e80e0697bbf38882f0ed7e3aa1f7 (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.
-rw-r--r--sw/source/core/layout/frmtool.cxx43
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();
+ }
}
}
}