summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandquickcompositor.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-29 13:50:15 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commit7c65f7e9618a104b1304ec1a7a1cf7ee31527c87 (patch)
tree78dc02d7d815c7203d80ea74eae1ade6279638aa /src/compositor/compositor_api/qwaylandquickcompositor.cpp
parent0e1bd0256ed13c3385f36b06b3589524060b03c5 (diff)
Add createSurface factory function on QWaylandCompositor
This simplifies subclassing the compositor getting Change-Id: I392b84febae62df042b23fa806360bc068bf984f
Diffstat (limited to 'src/compositor/compositor_api/qwaylandquickcompositor.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandquickcompositor.cpp26
1 files changed, 6 insertions, 20 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.cpp b/src/compositor/compositor_api/qwaylandquickcompositor.cpp
index 2a85156c1..6dd7ddd07 100644
--- a/src/compositor/compositor_api/qwaylandquickcompositor.cpp
+++ b/src/compositor/compositor_api/qwaylandquickcompositor.cpp
@@ -46,27 +46,8 @@
QT_BEGIN_NAMESPACE
-class QWaylandQuickCompositorPrivate : public QtWayland::Compositor
-{
-public:
- QWaylandQuickCompositorPrivate(QWaylandQuickCompositor *compositor, QWaylandCompositor::ExtensionFlags extensions)
- : QtWayland::Compositor(compositor, extensions)
- {
- }
-
- void compositor_create_surface(Resource *resource, uint32_t id) Q_DECL_OVERRIDE
- {
- QWaylandQuickSurface *surface = new QWaylandQuickSurface(resource->client(), id, wl_resource_get_version(resource->handle), static_cast<QWaylandQuickCompositor *>(m_qt_compositor));
- primaryOutput()->addSurface(surface);
-
- //BUG: This may not be an on-screen window surface though
- m_qt_compositor->surfaceCreated(surface);
- }
-};
-
-
QWaylandQuickCompositor::QWaylandQuickCompositor(const char *socketName, ExtensionFlags extensions)
- : QWaylandCompositor(socketName, new QWaylandQuickCompositorPrivate(this, extensions))
+ : QWaylandCompositor(socketName, extensions)
{
qmlRegisterUncreatableType<QWaylandSurfaceItem>("QtCompositor", 1, 0, "WaylandSurfaceItem", QObject::tr("Cannot create instance of WaylandSurfaceItem"));
qmlRegisterUncreatableType<QWaylandQuickSurface>("QtCompositor", 1, 0, "WaylandQuickSurface", QObject::tr("Cannot create instance of WaylandQuickSurface"));
@@ -90,4 +71,9 @@ QWaylandOutput *QWaylandQuickCompositor::createOutput(QWindow *window,
return new QWaylandQuickOutput(this, quickWindow, manufacturer, model);
}
+QWaylandSurface *QWaylandQuickCompositor::createSurface(QWaylandClient *client, quint32 id, int version)
+{
+ return new QWaylandQuickSurface(client->client(), id, version, this);
+}
+
QT_END_NAMESPACE