[Libreoffice-commits] core.git: vcl/source
Tor Lillqvist
tml at collabora.com
Tue Mar 11 06:17:40 PDT 2014
vcl/source/window/window.cxx | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
New commits:
commit 2c18f34e422418a18e2fe6608372f0ba0c61c0b7
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Mar 11 15:06:33 2014 +0200
We do seem to need the "resize timer" after all in tiled rendering
Otherwise even a trivial test document renders extremely badly, just
the top row of text in tiles here and there. Go figure. Maybe the code
thinks the document "window" is of some ridiculous 1x1 size or
something if the resize timer isn't used? Also, the resize timer
handler calls paint functionality.
I wonder how we can be sure that the resize timer happens to fire
during the rendering a tile, though? Surely if the tile rendering call
returns before the timer fires, whatever essential thing it is that
the timer needs to do, doesn't happen. Maybe this then explains the
blank tiles I occasionally see? On the other hand, when I see them,
they don't appear randomly, but it's always the same tile that shows
up blank.
Change-Id: If5e6854d8846fb0b7bea15547a326bd77f23987b
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index f5be436..691a17d 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -924,9 +924,9 @@ void Window::ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSyste
{
mpWindowImpl->mpFrameData->maPaintTimer.SetTimeout( 30 );
mpWindowImpl->mpFrameData->maPaintTimer.SetTimeoutHdl( LINK( this, Window, ImplHandlePaintHdl ) );
- mpWindowImpl->mpFrameData->maResizeTimer.SetTimeout( 50 );
- mpWindowImpl->mpFrameData->maResizeTimer.SetTimeoutHdl( LINK( this, Window, ImplHandleResizeTimerHdl ) );
}
+ mpWindowImpl->mpFrameData->maResizeTimer.SetTimeout( 50 );
+ mpWindowImpl->mpFrameData->maResizeTimer.SetTimeoutHdl( LINK( this, Window, ImplHandleResizeTimerHdl ) );
mpWindowImpl->mpFrameData->mbInternalDragGestureRecognizer = false;
if ( pRealParent && IsTopWindow() )
@@ -2628,7 +2628,11 @@ IMPL_LINK_NOARG(Window, ImplHandleResizeTimerHdl)
if( mpWindowImpl->mbReallyVisible )
{
ImplCallResize();
- if( mpWindowImpl->mpFrameData->maPaintTimer.IsActive() )
+ if( ImplDoTiledRendering() )
+ {
+ ImplHandlePaintHdl(NULL);
+ }
+ else if( mpWindowImpl->mpFrameData->maPaintTimer.IsActive() )
{
mpWindowImpl->mpFrameData->maPaintTimer.Stop();
mpWindowImpl->mpFrameData->maPaintTimer.GetTimeoutHdl().Call( NULL );
More information about the Libreoffice-commits
mailing list