summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandsurface_p.h
diff options
context:
space:
mode:
authorGiulio Camuffo <giulio.camuffo@jollamobile.com>2014-07-03 16:37:47 +0300
committerGiulio Camuffo <giulio.camuffo@jollamobile.com>2014-07-30 16:52:41 +0200
commit4f39034927ebc76c6e7fde5fe692eaa88c085734 (patch)
tree098f035cb30d83dca1f3efaedd59350ea1fa4e4e /src/compositor/compositor_api/qwaylandsurface_p.h
parentc6f604d2fa3acafce05de15cb9f3195572e39285 (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.h3
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;
};