diff options
Diffstat (limited to 'src/window-lib/waylandcompositor.cpp')
-rw-r--r-- | src/window-lib/waylandcompositor.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/window-lib/waylandcompositor.cpp b/src/window-lib/waylandcompositor.cpp index 24a487fa..540fd048 100644 --- a/src/window-lib/waylandcompositor.cpp +++ b/src/window-lib/waylandcompositor.cpp @@ -154,6 +154,11 @@ WaylandCompositor::WaylandCompositor(QQuickWindow *window, const QString &waylan , m_amExtension(new WaylandQtAMServerExtension(this)) , m_textInputManager(new QWaylandTextInputManager(this)) { + m_wlShell->setParent(this); + m_xdgShell->setParent(this); + m_amExtension->setParent(this); + m_textInputManager->setParent(this); + setSocketName(waylandSocketName.toUtf8()); registerOutputWindow(window); @@ -178,6 +183,13 @@ WaylandCompositor::WaylandCompositor(QQuickWindow *window, const QString &waylan defaultSeat()->keymap()->setLayout(QLocale::system().name().section(qL1C('_'), 1, 1).toLower()); } +WaylandCompositor::~WaylandCompositor() +{ + // QWayland leaks like sieve everywhere, but we need this explicit delete to be able + // to suppress the rest via LSAN leak suppression files + delete defaultSeat(); +} + void WaylandCompositor::xdgPing(WindowSurface* surface) { uint serial = m_xdgShell->ping(surface->client()); |