From 4a55670e2453cdb9895f51bbd4051f7004d768c5 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Mon, 14 Sep 2015 18:09:25 +0100 Subject: tdf#94213 - defer glFlushing until we've re-rendered after a re-size. Avoids a rather horrible flickering problem in GL mode. Change-Id: Id205f28de209dc2e4fb6d6fa48b86ee5bd38835d --- vcl/source/window/paint.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'vcl') diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx index 74c74dba5d74..429711ee7ab9 100644 --- a/vcl/source/window/paint.cxx +++ b/vcl/source/window/paint.cxx @@ -651,6 +651,8 @@ IMPL_LINK_NOARG_TYPED(Window, ImplHandlePaintHdl, Idle *, void) return; } + BeginPaint(); + // save paint events until resizing or initial sizing done if (!ImplDoTiledRendering() && mpWindowImpl->mbFrame && (mpWindowImpl->mpFrameData->maResizeIdle.IsActive() || @@ -662,12 +664,16 @@ IMPL_LINK_NOARG_TYPED(Window, ImplHandlePaintHdl, Idle *, void) { ImplCallOverlapPaint(); } + + EndPaint(); } IMPL_LINK_NOARG_TYPED(Window, ImplHandleResizeTimerHdl, Idle *, void) { if( mpWindowImpl->mbReallyVisible ) { + BeginPaint(); + ImplCallResize(); if( ImplDoTiledRendering() ) { @@ -678,6 +684,8 @@ IMPL_LINK_NOARG_TYPED(Window, ImplHandleResizeTimerHdl, Idle *, void) mpWindowImpl->mpFrameData->maPaintIdle.Stop(); mpWindowImpl->mpFrameData->maPaintIdle.GetIdleHdl().Call( NULL ); } + + EndPaint(); } } -- cgit