diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-07-01 15:56:11 +0300 |
---|---|---|
committer | Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> | 2014-08-07 07:59:00 +0200 |
commit | d107e2ba88e44590f77c608073eee6429f3d3a8c (patch) | |
tree | 5b96804a31b04c8f17fff03907815f9a90fc24ab /src/client/qwaylandnativeinterface.cpp | |
parent | 3419c5a868b6f528cfb17ee19261c937163ea7e0 (diff) |
Add a way to have out of source shell integrations
Some platforms (especially non-desktop ones) may use a custom
Wayland shell extension, more tailored to the form factor than
the generic and desktoppy wl_shell or xdg_shell. Instead of stuffing
N protocol implementations in the QPA plugin use a plugin architecture
to allow them to live out of tree.
When creating a shell surface the QT_WAYLAND_SHELL_INTEGRATION env
variable will be checked, and if it points to a valid plugin that
will be used to create the shell surface, falling back to wl_shell
or xdg_shell if no plugin is specified.
Change-Id: I05019174bb915199dd726f5fdcc0385ef846e8de
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Philippe Coval <rzr@gna.org>
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/client/qwaylandnativeinterface.cpp')
-rw-r--r-- | src/client/qwaylandnativeinterface.cpp | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/client/qwaylandnativeinterface.cpp b/src/client/qwaylandnativeinterface.cpp index e3d6fef4a..3d714c2fb 100644 --- a/src/client/qwaylandnativeinterface.cpp +++ b/src/client/qwaylandnativeinterface.cpp @@ -99,34 +99,25 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc QVariantMap QWaylandNativeInterface::windowProperties(QPlatformWindow *window) const { QWaylandWindow *waylandWindow = static_cast<QWaylandWindow *>(window); - if (QWaylandExtendedSurface *extendedWindow = waylandWindow->extendedWindow()) - return extendedWindow->properties(); - return QVariantMap(); + return waylandWindow->properties(); } - QVariant QWaylandNativeInterface::windowProperty(QPlatformWindow *window, const QString &name) const { QWaylandWindow *waylandWindow = static_cast<QWaylandWindow *>(window); - if (QWaylandExtendedSurface *extendedWindow = waylandWindow->extendedWindow()) - return extendedWindow->property(name); - return QVariant(); + return waylandWindow->property(name); } QVariant QWaylandNativeInterface::windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const { QWaylandWindow *waylandWindow = static_cast<QWaylandWindow *>(window); - if (QWaylandExtendedSurface *extendedWindow = waylandWindow->extendedWindow()) { - return extendedWindow->property(name,defaultValue); - } - return defaultValue; + return waylandWindow->property(name, defaultValue); } void QWaylandNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value) { QWaylandWindow *wlWindow = static_cast<QWaylandWindow*>(window); - if (QWaylandExtendedSurface *extendedWindow = wlWindow->extendedWindow()) - extendedWindow->updateGenericProperty(name,value); + wlWindow->sendProperty(name, value); } void QWaylandNativeInterface::emitWindowPropertyChanged(QPlatformWindow *window, const QString &name) |