diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-09-14 18:09:25 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-09-14 18:09:25 +0100 |
commit | 4a55670e2453cdb9895f51bbd4051f7004d768c5 (patch) | |
tree | 3d6694fc931305848f79cdeffd2b43cf76a6fa11 /vcl | |
parent | 2b2a812b89d0d1df08c5d771bfe9bc5eaa3a040c (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.cxx | 8 |
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(); } } |