diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-29 13:50:15 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:41 +0200 |
commit | 7c65f7e9618a104b1304ec1a7a1cf7ee31527c87 (patch) | |
tree | 78dc02d7d815c7203d80ea74eae1ade6279638aa /src/compositor/compositor_api/qwaylandquickcompositor.cpp | |
parent | 0e1bd0256ed13c3385f36b06b3589524060b03c5 (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.cpp | 26 |
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 |