diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-08-03 10:58:58 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2015-08-04 07:56:13 +0000 |
commit | ac2bd6e1c50b0155707b90d301ccb9df5cd91a92 (patch) | |
tree | c6eef594a82f8a24801f52ef77dfd4eebfde5026 | |
parent | fd2bb1847eb3e1edaa590eac9dfaaaf1c64f638a (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>
-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; |