QWaylandDisplay: Allow software-only deco and don't init GL needlessly

Don't initialize the client buffer integration just to check whether it can
do a decoration. If we had a GL window, it would have initialized GL already.

Also, we can do software-rendered decorations nowadays, only disable them
if the integration explicitly says it can't.

Change-Id: I396d32796a10ccffd6ef3bb0c5eaa3a1078b8d79
Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
Kai Uwe Broulik 2024-01-11 20:54:34 +01:00
parent 2ab62833e2
commit aff3a43bf0

View File

@ -891,7 +891,12 @@ bool QWaylandDisplay::supportsWindowDecoration() const
if (disabled)
return false;
static bool integrationSupport = clientBufferIntegration() && clientBufferIntegration()->supportsWindowDecoration();
// Don't initialize client buffer integration just to check whether it can have a decoration.
if (!mWaylandIntegration->mClientBufferIntegrationInitialized)
return true;
// We can do software-rendered decorations, only disable them if the integration explicitly says it can't.
static bool integrationSupport = !clientBufferIntegration() || clientBufferIntegration()->supportsWindowDecoration();
return integrationSupport;
}