Kaydet (Commit) a60db559 authored tarafından Michael Meeks's avatar Michael Meeks

tdf#94213 - calc re-size flicker turns out to be the status bar.

Using vdev's associated with old contexts, is un-necessary and a
recipe for context switching & hence flicker.

Change-Id: I37ed967a7816e5ca0240908ab4793ce1e68570ee
Reviewed-on: https://gerrit.libreoffice.org/18602Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
üst 73a8fcec
......@@ -21,6 +21,7 @@
#include <vcl/window.hxx>
#include <vcl/dockwin.hxx>
#include <vcl/layout.hxx>
#include <vcl/opengl/OpenGLWrapper.hxx>
#include <window.h>
#include <svdata.hxx>
......@@ -452,7 +453,14 @@ void Window::ImplCallResize()
{
mpWindowImpl->mbCallResize = false;
if( GetBackground().IsGradient() )
// OpenGL has a charming feature of black clearing the whole window
// some legacy code eg. the app-menu has the beautiful feature of
// avoiding re-paints when width doesn't change => invalidate all.
if( OpenGLWrapper::isVCLOpenGLEnabled() )
Invalidate();
// Normally we avoid blanking on re-size unless people might notice:
else if( GetBackground().IsGradient() )
Invalidate();
Resize();
......
......@@ -27,6 +27,7 @@
#include <vcl/status.hxx>
#include <vcl/virdev.hxx>
#include <vcl/settings.hxx>
#include <vcl/opengl/OpenGLWrapper.hxx>
#include <svdata.hxx>
#include <window.h>
......@@ -731,6 +732,11 @@ void StatusBar::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
// Do offscreen only when we are not recording layout..
bool bOffscreen = !rRenderContext.ImplIsRecordLayout();
// tdf#94213 - un-necessary virtual-device in GL mode
// causes context switch & hence flicker during sizing.
if( OpenGLWrapper::isVCLOpenGLEnabled() )
bOffscreen = false;
for (sal_uInt16 i = 0; i < nItemCount; i++)
{
ImplDrawItem(rRenderContext, bOffscreen, i, true, true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment