summaryrefslogtreecommitdiff
path: root/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland_common/qwaylanddecoration.cpp')
-rw-r--r--src/plugins/platforms/wayland_common/qwaylanddecoration.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp b/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
index 11baeeb6..f5f79ae6 100644
--- a/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
+++ b/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
@@ -46,6 +46,7 @@
#include "qwaylandinputdevice.h"
#include <QtGui/QGuiApplication>
+#include <QtGui/QImage>
#include <QtGui/QCursor>
#include <QtGui/QPainter>
#include <QtGui/QPalette>
@@ -124,6 +125,8 @@ static const char * const qt_normalizeup_xpm[] = {
QWaylandDecoration::QWaylandDecoration(QWaylandWindow *window)
: m_window(window->window())
, m_wayland_window(window)
+ , m_isDirty(true)
+ , m_decorationContentImage(0)
, m_margins(3,30,3,3)
, m_hasSetCursor(false)
, m_mouseButtons(Qt::NoButton)
@@ -144,6 +147,26 @@ QWaylandDecoration::~QWaylandDecoration()
m_wayland_window->setDecoration(0);
}
+const QImage &QWaylandDecoration::contentImage()
+{
+ if (m_isDirty) {
+ //Update the decoration backingstore
+
+ m_decorationContentImage = QImage(window()->frameGeometry().size(), QImage::Format_ARGB32_Premultiplied);
+ m_decorationContentImage.fill(Qt::transparent);
+ this->paint(&m_decorationContentImage);
+
+ m_isDirty = false;
+ }
+
+ return m_decorationContentImage;
+}
+
+void QWaylandDecoration::update()
+{
+ m_isDirty = true;
+}
+
void QWaylandDecoration::paint(QPaintDevice *device)
{
QRect surfaceRect(QPoint(), window()->frameGeometry().size());