diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-08-03 10:58:58 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-08-06 12:57:08 +0200 |
commit | 5962c1817e6bffc559341e66d34eb117b0baea5e (patch) | |
tree | 21c8d7135f449f8b4847b310948b05dd3eec983a /vcl | |
parent | 49b304a78d30af598d1ca20a35f6cc475e59da0a (diff) |
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.
(cherry picked from commits 27f6b2c038f5daf16a7fff4adf478b603eb08399 and
8bb963c3e51725fba649a5db0f5deb8778f1232b)
Change-Id: Iaf3306ef746bedbe64be36c4efeae73afd75db2a
Reviewed-on: https://gerrit.libreoffice.org/17500
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/paint.cxx | 12 |
1 files changed, 5 insertions, 7 deletions
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; |