[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