Kaydet (Commit) 3e447810 authored tarafından Michael Weghorn's avatar Michael Weghorn

tdf#123011 Detect kde5 desktop in Plasma Wayland session

Both env variables 'KDE_FULL_SESSION' and 'KDE_SESSION_VERSION'
are set in both X11 and Wayland sessions for Plasma 5 (kde5),
s.a. https://userbase.kde.org/KDE_System_Administration/Environment_Variables,
so drop the alternative X-specific check.

Move the check for a kde5 upward, so that kde5 is actually detected
in a Plasma 5 Wayland session, rather than falling back to
assuming GNOME.

Change-Id: Ieb5b47272f375ceed4d44a2ccc5b517222ae86b9
Reviewed-on: https://gerrit.libreoffice.org/67044Reviewed-by: 's avatarTomáš Chvátal <tchvatal@suse.cz>
Tested-by: 's avatarTomáš Chvátal <tchvatal@suse.cz>
Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
(cherry picked from commit 7eccf0b3)
Reviewed-on: https://gerrit.libreoffice.org/67051
Tested-by: Jenkins
Reviewed-by: 's avatarMichael Weghorn <m.weghorn@posteo.de>
üst 10417db7
......@@ -191,16 +191,13 @@ static bool is_kde4_desktop( Display* pDisplay )
return false;
}
static bool is_kde5_desktop( Display* pDisplay )
static bool is_kde5_desktop()
{
static const char * pFullVersion = getenv( "KDE_FULL_SESSION" );
static const char * pSessionVersion = getenv( "KDE_SESSION_VERSION" );
if ( pFullVersion && pSessionVersion && strcmp(pSessionVersion, "5") == 0)
return true;
if ( KDEVersion( pDisplay ) == 5 )
return true;
return false;
}
......@@ -280,6 +277,9 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
ret = DESKTOP_LXQT;
else
{
if ( is_kde5_desktop() )
return DESKTOP_KDE5;
// tdf#121275 if we still can't tell, and WAYLAND_DISPLAY
// is set, default to gtk3
const char* pWaylandStr = getenv("WAYLAND_DISPLAY");
......@@ -328,9 +328,7 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
XErrorHandler pOldHdl = XSetErrorHandler( autodect_error_handler );
if ( is_kde5_desktop( pDisplay ) )
ret = DESKTOP_KDE5;
else if ( is_kde4_desktop( pDisplay ) )
if ( is_kde4_desktop( pDisplay ) )
ret = DESKTOP_KDE4;
else if ( is_gnome_desktop( pDisplay ) )
ret = DESKTOP_GNOME;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment