Skip to content

Fix DesktopStartup ID handling

David Edmundson requested to merge work/startup_id into master

The parsing of DESKTOP_STARTUP_ID to the newly spawned application was broken. QXCBConnection in the constuctor runs:

    m_startupId = qgetenv("DESKTOP_STARTUP_ID");
    qunsetenv("DESKTOP_STARTUP_ID");

Therefore it won't be available as the env here which is always after the platform has loaded.

The handling of startupIDs was effectively completely missing with a TODO. I have effectively opted for the documented solution 2. For creating new windows, everything is automatic. For raising an existing window it is up to the client to handle the startup ID using the value stored via QX11Info.

In the worst case is we attach now obsoleted startupIDs to new windows, but that should be no worse than not having any startup IDs.

Merge request reports