Kaydet (Commit) f31fad32 authored tarafından Pader Rezso's avatar Pader Rezso Kaydeden (comit) Michael Meeks

fdo#46990 - detect MATE and XFCE desktops.

Change-Id: Id72860fc2e7d6b40f4fcb96b8f504a4f86a335b1
üst 3887ba56
...@@ -24,6 +24,8 @@ enum DesktopType { ...@@ -24,6 +24,8 @@ enum DesktopType {
DESKTOP_NONE, // headless, i.e. no X connection at all DESKTOP_NONE, // headless, i.e. no X connection at all
DESKTOP_UNKNOWN, // unknown desktop, simple WM, etc. DESKTOP_UNKNOWN, // unknown desktop, simple WM, etc.
DESKTOP_GNOME, DESKTOP_GNOME,
DESKTOP_XFCE,
DESKTOP_MATE,
DESKTOP_KDE, DESKTOP_KDE,
DESKTOP_KDE4, DESKTOP_KDE4,
DESKTOP_TDE DESKTOP_TDE
......
...@@ -43,8 +43,10 @@ static bool is_gnome_desktop( Display* pDisplay ) ...@@ -43,8 +43,10 @@ static bool is_gnome_desktop( Display* pDisplay )
// warning: these checks are coincidental, GNOME does not // warning: these checks are coincidental, GNOME does not
// explicitly advertise itself // explicitly advertise itself
if ( NULL != getenv( "GNOME_DESKTOP_SESSION_ID" ) ) if ( "gnome" == getenv( "DESKTOP_SESSION" ) || NULL != getenv( "GNOME_DESKTOP_SESSION_ID" ) )
{
ret = true; ret = true;
}
if( ! ret ) if( ! ret )
{ {
...@@ -119,6 +121,24 @@ static bool is_gnome_desktop( Display* pDisplay ) ...@@ -119,6 +121,24 @@ static bool is_gnome_desktop( Display* pDisplay )
return ret; return ret;
} }
static bool is_xfce_desktop( Display* pDisplay )
{
if ( "xfce" == getenv( "DESKTOP_SESSION" ) )
{
return true;
}
return false;
}
static bool is_mate_desktop( Display* pDisplay )
{
if ( "mate" == getenv( "DESKTOP_SESSION" ) )
{
return true;
}
return false;
}
static bool bWasXError = false; static bool bWasXError = false;
static inline bool WasXError() static inline bool WasXError()
...@@ -291,6 +311,10 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment() ...@@ -291,6 +311,10 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
return DESKTOP_KDE4; return DESKTOP_KDE4;
if ( aOver.equalsIgnoreAsciiCase( "gnome" ) ) if ( aOver.equalsIgnoreAsciiCase( "gnome" ) )
return DESKTOP_GNOME; return DESKTOP_GNOME;
if ( aOver.equalsIgnoreAsciiCase( "xfce" ) )
return DESKTOP_XFCE;
if ( aOver.equalsIgnoreAsciiCase( "mate" ) )
return DESKTOP_MATE;
if ( aOver.equalsIgnoreAsciiCase( "kde" ) ) if ( aOver.equalsIgnoreAsciiCase( "kde" ) )
return DESKTOP_KDE; return DESKTOP_KDE;
if ( aOver.equalsIgnoreAsciiCase( "none" ) ) if ( aOver.equalsIgnoreAsciiCase( "none" ) )
...@@ -351,6 +375,10 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment() ...@@ -351,6 +375,10 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
ret = DESKTOP_KDE4; ret = DESKTOP_KDE4;
else if ( is_gnome_desktop( pDisplay ) ) else if ( is_gnome_desktop( pDisplay ) )
ret = DESKTOP_GNOME; ret = DESKTOP_GNOME;
else if ( is_xfce_desktop( pDisplay ) )
ret = DESKTOP_XFCE;
else if ( is_mate_desktop( pDisplay ) )
ret = DESKTOP_MATE;
else if ( is_kde_desktop( pDisplay ) ) else if ( is_kde_desktop( pDisplay ) )
ret = DESKTOP_KDE; ret = DESKTOP_KDE;
else else
......
...@@ -188,7 +188,7 @@ static SalInstance* autodetect_plugin() ...@@ -188,7 +188,7 @@ static SalInstance* autodetect_plugin()
// no server at all: dummy plugin // no server at all: dummy plugin
if ( desktop == DESKTOP_NONE ) if ( desktop == DESKTOP_NONE )
pList = pHeadlessFallbackList; pList = pHeadlessFallbackList;
else if ( desktop == DESKTOP_GNOME ) else if ( desktop == DESKTOP_GNOME || desktop == DESKTOP_XFCE || desktop == DESKTOP_MATE )
pList = pStandardFallbackList; pList = pStandardFallbackList;
else if( desktop == DESKTOP_TDE ) else if( desktop == DESKTOP_TDE )
pList = pTDEFallbackList; pList = pTDEFallbackList;
...@@ -287,7 +287,7 @@ void SalAbort( const OUString& rErrorText, bool bDumpCore ) ...@@ -287,7 +287,7 @@ void SalAbort( const OUString& rErrorText, bool bDumpCore )
_exit(1); _exit(1);
} }
static const char * desktop_strings[] = { "none", "unknown", "GNOME", "TDE", "KDE", "KDE4" }; static const char * desktop_strings[] = { "none", "unknown", "GNOME", "XFCE", "MATE", "TDE", "KDE", "KDE4" };
const OUString& SalGetDesktopEnvironment() const OUString& SalGetDesktopEnvironment()
{ {
......
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