[Libreoffice-commits] core.git: vcl/ios vcl/source
tsahi glik
tsahi.glik at cloudon.com
Thu Sep 12 04:44:58 PDT 2013
vcl/ios/iosinst.cxx | 19 +++++++++++++++++--
vcl/source/window/window.cxx | 1 +
2 files changed, 18 insertions(+), 2 deletions(-)
New commits:
commit 16a53253e5991de8d44679157c29d58bb431eb2c
Author: tsahi glik <tsahi.glik at cloudon.com>
Date: Fri Aug 30 11:10:40 2013 -0700
Sync IOS screen invalidate to end of paint
Change-Id: If179c5280366a377ace710e4acf7df737544b224
Reviewed-on: https://gerrit.libreoffice.org/5706
Reviewed-by: Tor Lillqvist <tml at collabora.com>
Tested-by: Tor Lillqvist <tml at collabora.com>
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index b316d34..8b654a5 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -146,6 +146,9 @@ SalSystem *IosSalInstance::CreateSalSystem()
class IosSalFrame : public SvpSalFrame
{
+private:
+ basegfx::B2IBox m_DamagedRect;
+
public:
IosSalFrame( IosSalInstance *pInstance,
SalFrame *pParent,
@@ -176,7 +179,7 @@ public:
if (rDamageRect.isEmpty())
return;
- IosSalInstance::getInstance()->damaged( this, rDamageRect );
+ m_DamagedRect.expand(rDamageRect);
}
virtual void UpdateSettings( AllSettings &rSettings )
@@ -199,6 +202,16 @@ public:
rSettings.SetStyleSettings( aStyleSet );
}
+
+ virtual void Flush()
+ {
+ IosSalInstance::getInstance()->damaged( this, m_DamagedRect );
+ }
+
+ void resetDamaged()
+ {
+ m_DamagedRect.reset();
+ }
};
SalFrame *IosSalInstance::CreateChildFrame( SystemParentData* pParent, sal_uLong nStyle )
@@ -322,7 +335,7 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
for( std::list< SalFrame* >::const_iterator it = getFrames().begin();
it != getFrames().end();
it++ ) {
- SvpSalFrame *pFrame = static_cast<SvpSalFrame *>(*it);
+ IosSalFrame *pFrame = static_cast<IosSalFrame *>(*it);
SalFrameGeometry aGeom = pFrame->GetGeometry();
CGRect bbox = CGRectMake( aGeom.nX, aGeom.nY, aGeom.nWidth, aGeom.nHeight );
if ( pFrame->IsVisible() &&
@@ -344,6 +357,8 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
false,
kCGRenderingIntentDefault );
CGContextDrawImage( arg->context, bbox, image );
+
+ pFrame->resetDamaged();
}
}
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 669e0eb..d027eaa 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -7568,6 +7568,7 @@ void Window::Update()
}
pUpdateWindow->ImplCallPaint( NULL, pUpdateWindow->mpWindowImpl->mnPaintFlags );
+ bFlush = sal_True;
}
if ( bFlush )
More information about the Libreoffice-commits
mailing list