diff options
Diffstat (limited to 'sw/source/core/layout')
-rw-r--r-- | sw/source/core/layout/flylay.cxx | 4 | ||||
-rw-r--r-- | sw/source/core/layout/tabfrm.cxx | 12 |
2 files changed, 13 insertions, 3 deletions
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx index 4a7030ea241e..1589c12670fe 100644 --- a/sw/source/core/layout/flylay.cxx +++ b/sw/source/core/layout/flylay.cxx @@ -501,11 +501,11 @@ void SwFlyFreeFrame::CheckClip( const SwFormatFrameSize &rSz ) !GetDrawObjs() && !GetAnchorFrame()->IsInTab() ) { SwFrame* pHeader = FindFooterOrHeader(); - // In a header, correction of the position is no good idea. + // In a header or footer, correction of the position is no good idea. // If the fly moves, some paragraphs have to be formatted, this // could cause a change of the height of the headerframe, // now the flyframe can change its position and so on ... - if ( !pHeader || !pHeader->IsHeaderFrame() ) + if ( !pHeader ) { const long nOld = getFrameArea().Top(); diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index 4395bd231900..7333acc59c9d 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -3839,11 +3839,21 @@ long CalcHeightWithFlys( const SwFrame *pFrame ) // OD 30.09.2003 #i18732# - only objects, which follow // the text flow have to be considered. const SwFrameFormat& rFrameFormat = pAnchoredObj->GetFrameFormat(); + bool bFollowTextFlow = rFrameFormat.GetFollowTextFlow().GetValue(); const bool bConsiderObj = (rFrameFormat.GetAnchor().GetAnchorId() != RndStdIds::FLY_AS_CHAR) && pAnchoredObj->GetObjRect().Top() != FAR_AWAY && - rFrameFormat.GetFollowTextFlow().GetValue() && + bFollowTextFlow && pAnchoredObj->GetPageFrame() == pTmp->FindPageFrame(); + bool bWrapThrough = rFrameFormat.GetSurround().GetValue() == text::WrapTextMode_THROUGH; + if (pFrame->IsInTab() && bFollowTextFlow && bWrapThrough) + { + // Ignore wrap-through objects when determining the cell height. + // Normally FollowTextFlow requires a resize of the cell, but not in case of + // wrap-through. + continue; + } + if ( bConsiderObj ) { const SwFormatFrameSize &rSz = rFrameFormat.GetFrameSize(); |