diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-05-17 14:03:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-05-17 20:27:55 +0200 |
commit | 67c3b3becab2aa2b9522e3a092d46bfe507c3101 (patch) | |
tree | e8699e00810e843b997c9919f349eefc77eb7a06 /vcl | |
parent | ad7a84e41b50e6221634307112f00baf2b549dcd (diff) |
tdf#63130 when getting the size, do not do a full paint
otherwise we end up doing double work when called from
ImplWindowFrameProc, which is the main driver of painting on the screen
This reduces the load time by 10%
Change-Id: I9eb82a180344875f707fbf3d8128351a35def6a8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151879
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/window.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index e52ee1b33b47..1aa22918d520 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2416,7 +2416,11 @@ Size Window::GetSizePixel() const { VclPtr<vcl::Window> xWindow( const_cast<Window*>(this) ); mpWindowImpl->mpFrameData->maResizeIdle.Stop(); - mpWindowImpl->mpFrameData->maResizeIdle.Invoke( nullptr ); + // This is a copy of the code inside the resize Idle callback + // __except__ that we are not calling the paint idle callback + // which we don't want to do here, to avoid double work. + if( mpWindowImpl->mbReallyVisible ) + xWindow->ImplCallResize(); if( xWindow->isDisposed() ) return Size(0,0); } |