diff options
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandnativeinterface.cpp')
-rw-r--r-- | src/plugins/platforms/wayland/qwaylandnativeinterface.cpp | 32 |
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); +} |