diff options
-rw-r--r-- | src/compositor/extensions/qwaylandxdgshell.cpp | 13 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandxdgshell.h | 1 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/compositor/extensions/qwaylandxdgshell.cpp b/src/compositor/extensions/qwaylandxdgshell.cpp index 4f468b0ae..01543135a 100644 --- a/src/compositor/extensions/qwaylandxdgshell.cpp +++ b/src/compositor/extensions/qwaylandxdgshell.cpp @@ -1111,6 +1111,13 @@ QWaylandSurfaceRole *QWaylandXdgToplevel::role() return &QWaylandXdgToplevelPrivate::s_role; } +/*! + * Returns the QWaylandXdgToplevel corresponding to the \a resource. + */ +QWaylandXdgToplevel *QWaylandXdgToplevel::fromResource(wl_resource *resource) +{ + return static_cast<QWaylandXdgToplevelPrivate *>(QWaylandXdgToplevelPrivate::Resource::fromResource(resource)->xdg_toplevel_object)->q_func(); +} /*! * \qmlsignal QtWaylandCompositor::XdgShell::xdgSurfaceCreated(XdgSurface xdgSurface) @@ -1290,11 +1297,7 @@ void QWaylandXdgToplevelPrivate::xdg_toplevel_destroy(QtWaylandServer::xdg_tople void QWaylandXdgToplevelPrivate::xdg_toplevel_set_parent(QtWaylandServer::xdg_toplevel::Resource *resource, wl_resource *parent) { Q_UNUSED(resource); - QWaylandXdgToplevel *parentToplevel = nullptr; - if (parent) { - parentToplevel = static_cast<QWaylandXdgToplevelPrivate *>( - QWaylandXdgToplevelPrivate::Resource::fromResource(parent)->xdg_toplevel_object)->q_func(); - } + QWaylandXdgToplevel *parentToplevel = QWaylandXdgToplevel::fromResource(parent); Q_Q(QWaylandXdgToplevel); diff --git a/src/compositor/extensions/qwaylandxdgshell.h b/src/compositor/extensions/qwaylandxdgshell.h index 6f660eb1f..5467290f6 100644 --- a/src/compositor/extensions/qwaylandxdgshell.h +++ b/src/compositor/extensions/qwaylandxdgshell.h @@ -183,6 +183,7 @@ public: Q_INVOKABLE uint sendResizing(const QSize &maxSize); static QWaylandSurfaceRole *role(); + static QWaylandXdgToplevel *fromResource(::wl_resource *resource); Q_SIGNALS: void parentToplevelChanged(); |