From cfba4bacdf894708f4ae53bb67305129b1ae7b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Wed, 4 Mar 2015 07:54:40 +0100 Subject: [PATCH] [wayland] Reference BufferInterface in WindowPixmap As long as our WindowPixmap uses the buffer we should have it referenced. --- scene.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scene.cpp b/scene.cpp index 0766ceea70..3d04cd2cb9 100644 --- a/scene.cpp +++ b/scene.cpp @@ -993,8 +993,15 @@ bool WindowPixmap::isValid() const void WindowPixmap::updateBuffer() { if (auto s = toplevel()->surface()) { + using namespace KWayland::Server; if (auto b = s->buffer()) { + if (m_buffer) { + QObject::disconnect(m_buffer.data(), &BufferInterface::aboutToBeDestroyed, m_buffer.data(), &BufferInterface::unref); + m_buffer->unref(); + } m_buffer = b; + m_buffer->ref(); + QObject::connect(m_buffer.data(), &BufferInterface::aboutToBeDestroyed, m_buffer.data(), &BufferInterface::unref); } } }