Also handle notification startupId on X11

On X11 we can get a startupId/token from the notification too, so don't waste it
This commit is contained in:
Nicolas Fella
2023-01-14 02:11:22 +01:00
parent 7cb1f856ca
commit 7818747e45
2 changed files with 9 additions and 4 deletions

View File

@@ -7,6 +7,7 @@
#include <KWindowConfig>
#ifdef HAVE_WINDOWSYSTEM
#include <KStartupInfo>
#include <KWindowSystem>
#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);