summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandnativeinterface.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandnativeinterface.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandnativeinterface.cpp b/src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
index 3158c73..d81fa35 100644
--- a/src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
+++ b/src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
@@ -40,12 +40,13 @@
****************************************************************************/
#include "qwaylandnativeinterface.h"
-
#include "qwaylanddisplay.h"
#include "qwaylandwindow.h"
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/QScreen>
+#include "windowmanager_integration/qwaylandwindowmanagerintegration.h"
+
void *QWaylandNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window)
{
QByteArray lowerCaseResource = resourceString.toLower();
@@ -71,3 +72,32 @@ QWaylandScreen * QWaylandNativeInterface::qPlatformScreenForWindow(QWindow *wind
}
return screen;
}
+
+QVariantMap QWaylandNativeInterface::windowProperties(QPlatformWindow *window) const
+{
+ return m_windowProperties.value(window);
+}
+
+QVariant QWaylandNativeInterface::windowProperty(QPlatformWindow *window, const QString &name) const
+{
+ const QVariantMap properties = m_windowProperties.value(window);
+ return properties.value(name);
+}
+
+QVariant QWaylandNativeInterface::windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const
+{
+ const QVariantMap properties = m_windowProperties.value(window);
+ return properties.value(name, defaultValue);
+}
+
+void QWaylandNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value)
+{
+ QVariantMap props = m_windowProperties.value(window);
+ props.insert(name, value);
+ m_windowProperties.insert(window, props);
+
+ QWaylandWindow *wlWindow = static_cast<QWaylandWindow*>(window);
+ QWaylandWindowManagerIntegration::instance()->setWindowProperty(wlWindow, name, value);
+
+ emit windowPropertyChanged(window, name);
+}