summaryrefslogtreecommitdiffstats
path: root/src/compositor/extensions/qwaylandxdgdecorationv1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/extensions/qwaylandxdgdecorationv1.cpp')
-rw-r--r--src/compositor/extensions/qwaylandxdgdecorationv1.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/compositor/extensions/qwaylandxdgdecorationv1.cpp b/src/compositor/extensions/qwaylandxdgdecorationv1.cpp
index cea8cfe18..6ece73b8e 100644
--- a/src/compositor/extensions/qwaylandxdgdecorationv1.cpp
+++ b/src/compositor/extensions/qwaylandxdgdecorationv1.cpp
@@ -192,10 +192,15 @@ QWaylandXdgToplevelDecorationV1::QWaylandXdgToplevelDecorationV1(QWaylandXdgTopl
Q_ASSERT(toplevel);
auto *toplevelPrivate = QWaylandXdgToplevelPrivate::get(toplevel);
Q_ASSERT(!toplevelPrivate->m_decoration);
- toplevelPrivate->m_decoration.reset(this);
+ toplevelPrivate->m_decoration = this;
sendConfigure(manager->preferredMode());
}
+QWaylandXdgToplevelDecorationV1::~QWaylandXdgToplevelDecorationV1()
+{
+ QWaylandXdgToplevelPrivate::get(m_toplevel)->m_decoration = nullptr;
+}
+
void QWaylandXdgToplevelDecorationV1::sendConfigure(QWaylandXdgToplevelDecorationV1::DecorationMode mode)
{
if (configuredMode() == mode)
@@ -220,8 +225,7 @@ void QWaylandXdgToplevelDecorationV1::sendConfigure(QWaylandXdgToplevelDecoratio
void QWaylandXdgToplevelDecorationV1::zxdg_toplevel_decoration_v1_destroy_resource(Resource *resource)
{
Q_UNUSED(resource);
- auto *toplevelPrivate = QWaylandXdgToplevelPrivate::get(m_toplevel);
- toplevelPrivate->m_decoration.reset();
+ delete this;
}
void QWaylandXdgToplevelDecorationV1::zxdg_toplevel_decoration_v1_destroy(Resource *resource)