Skip to content

Properly use X11 startup ids

Nicolas Fella requested to merge work/nico/startupid into master

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.

Merge request reports