diff options
-rw-r--r-- | sw/source/core/text/txtfly.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx index ec6d09a3b8e6..dfe499619b4b 100644 --- a/sw/source/core/text/txtfly.cxx +++ b/sw/source/core/text/txtfly.cxx @@ -886,7 +886,14 @@ SwAnchoredObjList* SwTxtFly::InitAnchoredObjList() const SwSortedObjs *pSorted = pPage->GetSortedObjs(); const sal_uInt32 nCount = pSorted ? pSorted->Count() : 0; - const sal_Bool bWrapAllowed = !SwLayouter::FrmNotToWrap( *pCurrFrm->GetTxtNode()->getIDocumentLayoutAccess(), *pCurrFrm ); + // --> #108724# Page header/footer content doesn't have to wrap around + // floating screen objects + const bool bFooterHeader = 0 != pCurrFrm->FindFooterOrHeader(); + const IDocumentSettingAccess* pIDSA = pCurrFrm->GetTxtNode()->getIDocumentSettingAccess(); + // #i40155# - check, if frame is marked not to wrap + const sal_Bool bWrapAllowed = ( pIDSA->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING) || + ( !pCurrFrm->IsInFtn() && !bFooterHeader ) ) && + !SwLayouter::FrmNotToWrap( *pCurrFrm->GetTxtNode()->getIDocumentLayoutAccess(), *pCurrFrm ); bOn = sal_False; @@ -898,7 +905,6 @@ SwAnchoredObjList* SwTxtFly::InitAnchoredObjList() // #i28701# - consider complete frame area for new // text wrapping SwRect aRect; - const IDocumentSettingAccess* pIDSA = pCurrFrm->GetTxtNode()->getIDocumentSettingAccess(); if ( pIDSA->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING) ) { aRect = pCurrFrm->Prt(); @@ -914,7 +920,6 @@ SwAnchoredObjList* SwTxtFly::InitAnchoredObjList() const long nRight = (aRect.*fnRect->fnGetRight)() - 1; const long nLeft = (aRect.*fnRect->fnGetLeft)() + 1; const sal_Bool bR2L = pCurrFrm->IsRightToLeft(); - const bool bFooterHeader = ( pCurrFrm->FindFooterOrHeader() != NULL ); const IDocumentDrawModelAccess* pIDDMA = pCurrFrm->GetTxtNode()->getIDocumentDrawModelAccess(); |