From 7818747e453c285e4dfc2d9358fd6fc8e7c4c5ba Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Sat, 14 Jan 2023 02:11:22 +0100 Subject: [PATCH] Also handle notification startupId on X11 On X11 we can get a startupId/token from the notification too, so don't waste it --- src/windowcontroller.cpp | 11 ++++++++--- src/windowcontroller.h | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/windowcontroller.cpp b/src/windowcontroller.cpp index 05d09d7d0..5af72b650 100644 --- a/src/windowcontroller.cpp +++ b/src/windowcontroller.cpp @@ -7,6 +7,7 @@ #include #ifdef HAVE_WINDOWSYSTEM +#include #include #endif @@ -39,15 +40,19 @@ void WindowController::saveGeometry() KWindowConfig::saveWindowSize(m_window, windowGroup); } -void WindowController::showAndRaiseWindow(const QString &xdgActivationToken) +void WindowController::showAndRaiseWindow(const QString &startupId) { if (!m_window->isVisible()) { m_window->show(); } #ifdef HAVE_WINDOWSYSTEM - if (!xdgActivationToken.isEmpty()) { - KWindowSystem::setCurrentXdgActivationToken(xdgActivationToken); + if (!startupId.isEmpty()) { + if (KWindowSystem::isPlatformX11()) { + KStartupInfo::setNewStartupId(m_window, startupId.toUtf8()); + } else if (KWindowSystem::isPlatformWayland()) { + KWindowSystem::setCurrentXdgActivationToken(startupId); + } } KWindowSystem::activateWindow(m_window); diff --git a/src/windowcontroller.h b/src/windowcontroller.h index 2e5dc23b3..4f8225258 100644 --- a/src/windowcontroller.h +++ b/src/windowcontroller.h @@ -17,7 +17,7 @@ public: void restoreGeometry(); void saveGeometry(); - void showAndRaiseWindow(const QString &xdgActivationToken); + void showAndRaiseWindow(const QString &startupId); private: WindowController() = default;