summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlhan Yesil <ilhanyesil@gmx.de>2019-07-05 11:50:49 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2019-07-26 13:24:35 +0200
commit80ae85d89866e501496189b2749071869ab6e98c (patch)
tree9f967f0fd1141606457d71849e6e57374bb891ca
parent436d30ed57cc9f6122137cdba30afe5935c8bb34 (diff)
tdf#126222 Headers/footers are at correct position after scrolling
After scrolling, the positions of headers and footers of the previous pages have to be updated, else these headers and footers could get visible at a wrong position. Change-Id: I25508cc0fc0bb7a6e59aeb996e2e7e0a0e23511f Reviewed-on: https://gerrit.libreoffice.org/75118 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
-rw-r--r--sw/source/core/layout/paintfrm.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 36f1cd69ff5d..e17d38550eec 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -2987,6 +2987,18 @@ void SwRootFrame::PaintSwFrame(vcl::RenderContext& rRenderContext, SwRect const&
const SwPageFrame *pPage = pSh->Imp()->GetFirstVisPage(&rRenderContext);
+ // #126222. The positions of headers and footers of the previous
+ // pages have to be updated, else these headers and footers could
+ // get visible at a wrong position.
+ const SwPageFrame *pPageDeco = static_cast<const SwPageFrame*>(pPage->GetPrev());
+ while (pPageDeco)
+ {
+ pPageDeco->PaintDecorators();
+ OSL_ENSURE(!pPageDeco->GetPrev() || pPageDeco->GetPrev()->IsPageFrame(),
+ "Neighbour of page is not a page.");
+ pPageDeco = static_cast<const SwPageFrame*>(pPageDeco->GetPrev());
+ }
+
const bool bBookMode = gProp.pSGlobalShell->GetViewOptions()->IsViewLayoutBookMode();
if ( bBookMode && pPage->GetPrev() && static_cast<const SwPageFrame*>(pPage->GetPrev())->IsEmptyPage() )
pPage = static_cast<const SwPageFrame*>(pPage->GetPrev());