Use wayland platform plugin on GNOME wayland sessions by default

Qt wayland platform plugin has improved quite a lot and it is now pretty
much usable on Gnome. It also improves user experience a lot on HiDPI
displays.

Pick-to: 6.2
Change-Id: I943e0bb969f384bdc3c603e290ce9c8358b70f63
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Jan Grulich 2021-09-07 13:01:44 +02:00
parent 2c0bdd38cb
commit dda7dab827
1 changed files with 1 additions and 15 deletions

View File

@ -1402,16 +1402,9 @@ void QGuiApplicationPrivate::createPlatformIntegration()
}
const bool defaultIsWayland = !defaultIsXcb && platformPluginBase.startsWith("wayland");
bool isGnome = false;
const QByteArray waylandPlatformName = defaultIsWayland ? platformName : "wayland";
if (hasWaylandDisplay || isWaylandSessionType) {
const QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP").toLower();
const QByteArray sessionDesktop = qgetenv("XDG_SESSION_DESKTOP").toLower();
isGnome = currentDesktop.contains("gnome") || sessionDesktop.contains("gnome");
if (isGnome)
preferredPlatformOrder.append(waylandPlatformName);
else
preferredPlatformOrder.prepend(waylandPlatformName);
preferredPlatformOrder.prepend(waylandPlatformName);
if (defaultIsWayland)
platformName.clear();
@ -1479,14 +1472,7 @@ void QGuiApplicationPrivate::createPlatformIntegration()
argc = j;
}
#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN)
if ((hasWaylandDisplay || isWaylandSessionType) && isGnome && !platformExplicitlySelected) {
qInfo() << "Warning: Ignoring WAYLAND_DISPLAY on Gnome."
<< "Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.";
}
#else
Q_UNUSED(platformExplicitlySelected);
#endif
init_platform(QLatin1String(platformName), platformPluginPath, platformThemeName, argc, argv);