diff options
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index 9aec337bd..5480b1cf1 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -158,6 +158,7 @@ void QWaylandCompositorPrivate::init() socket_name = arguments.at(socketArg + 1).toLocal8Bit(); wl_compositor::init(display, 3); + wl_subcompositor::init(display, 1); data_device_manager = new QtWayland::DataDeviceManager(q); @@ -270,7 +271,7 @@ void QWaylandCompositorPrivate::addPolishObject(QObject *object) */ -void QWaylandCompositorPrivate::compositor_create_surface(Resource *resource, uint32_t id) +void QWaylandCompositorPrivate::compositor_create_surface(wl_compositor::Resource *resource, uint32_t id) { Q_Q(QWaylandCompositor); QWaylandClient *client = QWaylandClient::fromWlClient(q, resource->client()); @@ -292,11 +293,20 @@ void QWaylandCompositorPrivate::compositor_create_surface(Resource *resource, ui emit q->surfaceCreated(surface); } -void QWaylandCompositorPrivate::compositor_create_region(Resource *resource, uint32_t id) +void QWaylandCompositorPrivate::compositor_create_region(wl_compositor::Resource *resource, uint32_t id) { new QtWayland::Region(resource->client(), id); } +void QWaylandCompositorPrivate::subcompositor_get_subsurface(wl_subcompositor::Resource *resource, uint32_t id, wl_resource *surface, wl_resource *parent) +{ + Q_Q(QWaylandCompositor); + QWaylandSurface *childSurface = QWaylandSurface::fromResource(surface); + QWaylandSurface *parentSurface = QWaylandSurface::fromResource(parent); + QWaylandSurfacePrivate::get(childSurface)->initSubsurface(parentSurface, resource->client(), id, 1); + emit q->subsurfaceChanged(childSurface, parentSurface); +} + /*! \internal Used to create a fallback QWaylandSurface when no surface was |