From ba0c39064fd97816774f4c06ca84c92c4a137450 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 26 Jul 2023 16:31:04 +0100 Subject: Invalidate less on entering/leaving header/footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of invalidating the entire window, just invalidate the parts that need to change. Invalidate a sequence of Rectangles rather than bundle them into a vcl::Region. Currently Window::Invalidate(const vcl::Region&... does a LogicInvalidate(rRegion.GetBoundRect()) so get a mega rectangle that covers everthing which is the opposite of what I want to get here. It might be worth using GetRegionRectangles there. Change-Id: Idc3f5f7d19dd57da725072ec4161d932c0c26902 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154973 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- sw/inc/viewsh.hxx | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sw/inc') diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index 8976452a0dc4..66eec0f5060e 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -188,6 +188,8 @@ class SW_DLLPUBLIC SwViewShell : public sw::Ring SAL_DLLPRIVATE void InvalidateAll(std::vector& rReasons); + SAL_DLLPRIVATE void InvalidatePageAndHFSubsidiaryLines(); + protected: static ShellResource* spShellRes; ///< Resources for the Shell. static vcl::DeleteOnDeinit< std::shared_ptr > spCareDialog; ///< Avoid this window. -- cgit