summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-09-14 18:09:25 +0100
committerMichael Meeks <michael.meeks@collabora.com>2015-09-14 18:09:25 +0100
commit4a55670e2453cdb9895f51bbd4051f7004d768c5 (patch)
tree3d6694fc931305848f79cdeffd2b43cf76a6fa11 /vcl
parent2b2a812b89d0d1df08c5d771bfe9bc5eaa3a040c (diff)
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
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/paint.cxx8
1 files changed, 8 insertions, 0 deletions
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();
}
}