diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2016-05-11 14:28:56 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2016-05-20 12:11:17 +0000 |
commit | 5e5e866c8c1fc8234c25770d84e9591041e67d69 (patch) | |
tree | 111913497f39e6cbad7403743ab40a5d9aed734c /src/compositor/extensions/qwaylandxdgshell.h | |
parent | 8817a981389b4f22a614f258f3575360645f2fd9 (diff) |
Create a general ShellSurfaceItem to avoid duplication
XdgSurfaceItem and WlShellSurfaceItem have been removed in favor
of the more general ShellSurfaceItem. An XdgSurface or a WlShellSurface
can be assigned to the shellSurface property of a ShellSurfaceItem
and leaves open the possibility for additional shells.
A shared base class for QWaylandXdgSurface and QWaylandWlShellSurface
has been added which has a factory method for creating
a QWaylandQuickShellIntegration for that shell implementation.
The property "shellSurface" on the ShellSurfaceItem allows QML code to
attach to signals regardless of whether it's a WlShell or XdgShell
client. The pure-qml example has been updated to take advantage of this.
Change-Id: I9d3427586e100d6c44a24f319dd8e1486ff062ee
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Diffstat (limited to 'src/compositor/extensions/qwaylandxdgshell.h')
-rw-r--r-- | src/compositor/extensions/qwaylandxdgshell.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compositor/extensions/qwaylandxdgshell.h b/src/compositor/extensions/qwaylandxdgshell.h index c994d9934..c01726ac6 100644 --- a/src/compositor/extensions/qwaylandxdgshell.h +++ b/src/compositor/extensions/qwaylandxdgshell.h @@ -39,6 +39,7 @@ #include <QtWaylandCompositor/QWaylandCompositorExtension> #include <QtWaylandCompositor/QWaylandResource> +#include <QtWaylandCompositor/QWaylandShellSurface> #include <QtCore/QRect> @@ -88,7 +89,7 @@ private Q_SLOTS: }; -class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandXdgSurface : public QWaylandCompositorExtensionTemplate<QWaylandXdgSurface> +class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandXdgSurface : public QWaylandShellSurfaceTemplate<QWaylandXdgSurface> { Q_OBJECT Q_DECLARE_PRIVATE(QWaylandXdgSurface) @@ -158,6 +159,8 @@ public: Q_INVOKABLE uint requestFullscreen(const QSize &size); Q_INVOKABLE uint requestResizing(const QSize &maxSize); + QWaylandQuickShellIntegration *createIntegration(QWaylandQuickShellSurfaceItem *item) Q_DECL_OVERRIDE; + Q_SIGNALS: void surfaceChanged(); void titleChanged(); |