summaryrefslogtreecommitdiff
path: root/vcl/ios/iosinst.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/ios/iosinst.cxx')
-rw-r--r--vcl/ios/iosinst.cxx19
1 files changed, 17 insertions, 2 deletions
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index b316d34269ed..8b654a58003a 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();
}
}