From 6d21deb6e48627922fb223a4281ade46d6d230ec Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Thu, 15 Dec 2022 00:56:11 +0100 Subject: 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. --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 1df8c19a0..d5aa7b112 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,14 @@ find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS DBus ) +if (UNIX AND NOT APPLE) + set(HAVE_X11 TRUE) + + if (QT_MAJOR_VERSION STREQUAL "5") + find_package(Qt5X11Extras REQUIRED) + endif() +endif() + find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS KCMUtils NewStuff -- cgit v1.3.1