[Libreoffice-commits] core.git: 2 commits - vcl/source

Miklos Vajna vmiklos at collabora.co.uk
Mon Aug 3 09:03:02 PDT 2015


 vcl/source/window/paint.cxx |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

New commits:
commit 27f6b2c038f5daf16a7fff4adf478b603eb08399
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Aug 3 10:58:58 2015 +0200

    tdf#92982 vcl rendercontext: no need to call SetupBuffer() twice
    
    No need to call it in PaintHelper::StartBufferedPaint(), which would
    happen only for the root of the paint hierarchy. It's enough to do it in
    PaintHelper::DoPaint(), which happens for each widget.
    
    Change-Id: Iaf3306ef746bedbe64be36c4efeae73afd75db2a

diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 724719d..b4965e5 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -124,8 +124,6 @@ void PaintHelper::StartBufferedPaint()
     pFrameData->mbInBufferedPaint = true;
     m_bStartedBufferedPaint = true;
 
-    SetupBuffer();
-
     // Remember what was the map mode of m_aPaintRect.
     m_aPaintRectMapMode = m_pWindow->GetMapMode();
 
commit 8bb963c3e51725fba649a5db0f5deb8778f1232b
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Aug 3 10:02:44 2015 +0200

    tdf#92982 vcl rendercontext: no buffer is created here
    
    Change-Id: Iebcf9ec9f54102ca13dd36a3d3c2d2b6137dc0f0

diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index b707a54..724719d 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -52,7 +52,7 @@ private:
     sal_uInt16 m_nPaintFlags;
     bool m_bPop : 1;
     bool m_bRestoreCursor : 1;
-    bool m_bCreatedBuffer : 1; ///< This PaintHelper created the buffer for the double-buffering, and should dispose it when being destructed (if it is still alive by then).
+    bool m_bStartedBufferedPaint : 1; ///< This PaintHelper started a buffered paint, and should paint it on the screen when being destructed.
 public:
     PaintHelper(vcl::Window* pWindow, sal_uInt16 nPaintFlags);
     void SetPop()
@@ -103,7 +103,7 @@ PaintHelper::PaintHelper(vcl::Window *pWindow, sal_uInt16 nPaintFlags)
     , m_nPaintFlags(nPaintFlags)
     , m_bPop(false)
     , m_bRestoreCursor(false)
-    , m_bCreatedBuffer(false)
+    , m_bStartedBufferedPaint(false)
 {
 }
 
@@ -122,7 +122,7 @@ void PaintHelper::StartBufferedPaint()
         pFrameData->mpBuffer->Erase(m_aPaintRect);
 
     pFrameData->mbInBufferedPaint = true;
-    m_bCreatedBuffer = true;
+    m_bStartedBufferedPaint = true;
 
     SetupBuffer();
 
@@ -171,7 +171,7 @@ void PaintHelper::PaintBuffer()
 {
     ImplFrameData* pFrameData = m_pWindow->mpWindowImpl->mpFrameData;
     assert(pFrameData->mbInBufferedPaint);
-    assert(m_bCreatedBuffer);
+    assert(m_bStartedBufferedPaint);
 
     pFrameData->mpBuffer->mnOutOffX = 0;
     pFrameData->mpBuffer->mnOutOffY = 0;
@@ -524,7 +524,7 @@ PaintHelper::~PaintHelper()
 
     // double-buffering: paint in case we created the buffer, the children are
     // already painted inside
-    if (m_bCreatedBuffer && pFrameData->mbInBufferedPaint)
+    if (m_bStartedBufferedPaint && pFrameData->mbInBufferedPaint)
     {
         PaintBuffer();
         pFrameData->mbInBufferedPaint = false;


More information about the Libreoffice-commits mailing list