summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-08-03 10:58:58 +0200
committerTomaž Vajngerl <quikee@gmail.com>2015-08-04 07:56:13 +0000
commitac2bd6e1c50b0155707b90d301ccb9df5cd91a92 (patch)
treec6eef594a82f8a24801f52ef77dfd4eebfde5026
parentfd2bb1847eb3e1edaa590eac9dfaaaf1c64f638a (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.cxx12
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;