┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
diff options
context:
space:
mode:
authorNicolas Fella <[email protected]>2022-12-15 00:56:11 +0100
committerNicolas Fella <[email protected]>2022-12-30 12:33:01 +0000
commit6d21deb6e48627922fb223a4281ade46d6d230ec (patch)
tree73f35fb0c7c73d71598224e20fd0683070a399c0 /src/dolphinmainwindow.cpp
parent414311b8c8c2ba7b9adb42e495368039bd33b5ad (diff)
Properly use X11 startup ids
When one instance of Dolphin activates another it passes a startupId (X11) / activation token (wayland) along. On X11 this is passed using the DESKTOP_STARTUP_ID environment variable. The code tries to read that through KStartupInfo::startupId(). That doesn't work though, since Qt at startup reads the environment variable afterwards. However, it is nice enough to allow us to access it through QX11Info::nextStartupId(). Use that to read the token in the first instance and pass it to the second instance like we do on Wayland The user-facing impact of this is minimal since KStartupInfo::setNewStartupId internally falls back to KWindowSystem::forceActiveWindow when no startupId is passed.
Diffstat (limited to 'src/dolphinmainwindow.cpp')
-rw-r--r--src/dolphinmainwindow.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index e4aa16d5f..f3ec70753 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -289,7 +289,7 @@ void DolphinMainWindow::activateWindow(const QString &activationToken)
if (KWindowSystem::isPlatformWayland()) {
KWindowSystem::setCurrentXdgActivationToken(activationToken);
} else {
- KStartupInfo::setNewStartupId(window()->windowHandle(), KStartupInfo::startupId());
+ KStartupInfo::setNewStartupId(window()->windowHandle(), activationToken.toUtf8());
}
KWindowSystem::activateWindow(window()->windowHandle());