diff options
Diffstat (limited to 'vcl/ios/iosinst.cxx')
-rw-r--r-- | vcl/ios/iosinst.cxx | 19 |
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(); } } |