From 1bd4990984329f19f7ff8613042c00db4fdfdfc8 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 5 Jan 2016 17:29:43 +0100 Subject: [PATCH] fix close button enabled when it should, also use a qpointer to remove some crashes --- containments/taskpanel/taskpanel.cpp | 6 ++++++ containments/taskpanel/taskpanel.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/containments/taskpanel/taskpanel.cpp b/containments/taskpanel/taskpanel.cpp index 21a0de09..00ea6fcd 100644 --- a/containments/taskpanel/taskpanel.cpp +++ b/containments/taskpanel/taskpanel.cpp @@ -146,7 +146,13 @@ void TaskPanel::updateActiveWindow() if (!m_windowManagement) { return; } + if (m_activeWindow) { + disconnect(m_activeWindow, &KWayland::Client::PlasmaWindow::closeableChanged, this, &TaskPanel::hasCloseableActiveWindowChanged); + } m_activeWindow = m_windowManagement->activeWindow(); + + connect(m_activeWindow, &KWayland::Client::PlasmaWindow::closeableChanged, this, &TaskPanel::hasCloseableActiveWindowChanged); + // TODO: connect to closeableChanged, not needed right now as KWin doesn't provide this changeable emit hasCloseableActiveWindowChanged(); } diff --git a/containments/taskpanel/taskpanel.h b/containments/taskpanel/taskpanel.h index ff3548a5..10a57706 100644 --- a/containments/taskpanel/taskpanel.h +++ b/containments/taskpanel/taskpanel.h @@ -82,7 +82,7 @@ private: KWayland::Client::PlasmaShell *m_shellInterface = nullptr; KWayland::Client::PlasmaWindowManagement *m_windowManagement = nullptr; KWayland::Client::PlasmaWindowModel *m_windowModel = nullptr; - KWayland::Client::PlasmaWindow *m_activeWindow = nullptr; + QPointer m_activeWindow; }; #endif