From 5962c1817e6bffc559341e66d34eb117b0baea5e Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 3 Aug 2015 10:58:58 +0200 Subject: tdf#92982 vcl rendercontext: no need to call SetupBuffer() twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. (cherry picked from commits 27f6b2c038f5daf16a7fff4adf478b603eb08399 and 8bb963c3e51725fba649a5db0f5deb8778f1232b) Change-Id: Iaf3306ef746bedbe64be36c4efeae73afd75db2a Reviewed-on: https://gerrit.libreoffice.org/17500 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl --- vcl/source/window/paint.cxx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'vcl') diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx index c529d135c090..ee5d47a18caa 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,9 +122,7 @@ void PaintHelper::StartBufferedPaint() pFrameData->mpBuffer->Erase(m_aPaintRect); pFrameData->mbInBufferedPaint = true; - m_bCreatedBuffer = true; - - SetupBuffer(); + m_bStartedBufferedPaint = true; // Remember what was the map mode of m_aPaintRect. m_aPaintRectMapMode = m_pWindow->GetMapMode(); @@ -171,7 +169,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 +522,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; -- cgit