summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-05-17 14:03:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-05-17 20:27:55 +0200
commit67c3b3becab2aa2b9522e3a092d46bfe507c3101 (patch)
treee8699e00810e843b997c9919f349eefc77eb7a06 /vcl/source
parentad7a84e41b50e6221634307112f00baf2b549dcd (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/source')
-rw-r--r--vcl/source/window/window.cxx6
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);
}