When activating, also try token from XDG_ACTIVATION_TOKEN

This matches upstream QWaylandXdgSurface behavior.

It also makes various activation magic e.g. KDBusService work.
This commit is contained in:
Kai Uwe Broulik
2025-07-30 17:53:16 +02:00
committed by Aleix Pol Gonzalez
parent 397398dfd8
commit f599e829ad

View File

@ -211,6 +211,10 @@ bool QWaylandLayerSurface::requestActivate()
activation->activate(m_activationToken, window()->wlSurface());
m_activationToken = {};
return true;
} else if (const auto token = qEnvironmentVariable("XDG_ACTIVATION_TOKEN"); !token.isEmpty()) {
activation->activate(token, window()->wlSurface());
qunsetenv("XDG_ACTIVATION_TOKEN");
return true;
} else {
const auto focusWindow = QGuiApplication::focusWindow();
const auto wlWindow = focusWindow ? static_cast<QtWaylandClient::QWaylandWindow *>(focusWindow->handle()) : window();