diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-07-03 16:37:47 +0300 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-07-30 16:52:41 +0200 |
commit | 4f39034927ebc76c6e7fde5fe692eaa88c085734 (patch) | |
tree | 098f035cb30d83dca1f3efaedd59350ea1fa4e4e /src/compositor/compositor_api/qwaylandsurface_p.h | |
parent | c6f604d2fa3acafce05de15cb9f3195572e39285 (diff) |
Introduce QWaylandSurfaceInterface
Wayland is designed to be easily extensible with new protocol,
unfortunately it currently isn't possible with QtCompositor.
A QtWayland compositor has two ends: the Wayland end and the shell/wm
end, which may be implemented in QML. These two ends communicate mainly
through the QWaylandSurface and the QWaylandSurfaceView classes, but the
Wayland end is currently unable to hook into custom protocol extensions.
This is the purpose of the new QWaylandSurfaceInterface class, and of
QWaylandSurfaceOp and its subclasses: based on the QEvent model,
QWaylandSurfaceOp has only a type member, and its type specific subclasses
have additional data if needed. A custom protocol implementation, such as
xdg_surface or my_fancy_surface, will use a QWaylandSurfaceInterface subclass
which will call its specific protocol functions when it gets the relative
operation requests from the parent surface.
The QWaylandShellSurface class is now redundant so it is removed.
Change-Id: I37a86157a251626215f57ce030c77a26bfd65126
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandsurface_p.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandsurface_p.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface_p.h b/src/compositor/compositor_api/qwaylandsurface_p.h index e53b084c0..01d7ce545 100644 --- a/src/compositor/compositor_api/qwaylandsurface_p.h +++ b/src/compositor/compositor_api/qwaylandsurface_p.h @@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE class QWaylandCompositor; class QWaylandSurface; class QWaylandSurfaceView; +class QWaylandSurfaceInterface; class Q_COMPOSITOR_EXPORT QWaylandSurfacePrivate : public QObjectPrivate, public QtWayland::Surface { @@ -60,7 +61,9 @@ public: bool closing; int refCount; + QWaylandSurface::WindowType windowType; QList<QWaylandSurfaceView *> views; + QList<QWaylandSurfaceInterface *> interfaces; friend class QWaylandSurface; }; |