diff options
author | Robert Tari <robert@tari.in> | 2021-09-17 22:24:54 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-10-21 11:07:27 +0200 |
commit | 3298ec465f0f83ab1a355c5ee914c3a988cd9455 (patch) | |
tree | 015f1a42a367fee40285dcbd8504829cc4e8d23c | |
parent | 59a93c0ab51ac89ceb59d6e75d9a3ae80e545922 (diff) | |
download | libayatana-common-3298ec465f0f83ab1a355c5ee914c3a988cd9455.tar.gz libayatana-common-3298ec465f0f83ab1a355c5ee914c3a988cd9455.tar.bz2 libayatana-common-3298ec465f0f83ab1a355c5ee914c3a988cd9455.zip |
Also check DESKTOP_SESSION when detecting DE
fixes https://github.com/AyatanaIndicators/libayatana-common/issues/37
-rw-r--r-- | src/utils.c | 28 | ||||
-rw-r--r-- | src/utils.h | 7 |
2 files changed, 27 insertions, 8 deletions
diff --git a/src/utils.c b/src/utils.c index 29d4bf6..d46c604 100644 --- a/src/utils.c +++ b/src/utils.c @@ -25,7 +25,7 @@ // TODO: make case insensitive gboolean -is_xdg_current_desktop (const gchar* desktop) +is_xdg_current_desktop (const gchar* desktop, const gchar* session) { const gchar *xdg_current_desktop; gchar **desktop_names; @@ -42,49 +42,61 @@ is_xdg_current_desktop (const gchar* desktop) } g_strfreev (desktop_names); } + + if (session != NULL) + { + const gchar *desktop_session = g_getenv ("DESKTOP_SESSION"); + + if (desktop_session != NULL && g_str_equal(desktop_session, session)) + { + return TRUE; + } + + } + return FALSE; } gboolean ayatana_common_utils_is_lomiri () { - return is_xdg_current_desktop(DESKTOP_LOMIRI); + return is_xdg_current_desktop(DESKTOP_LOMIRI, SESSION_LOMIRI); } gboolean ayatana_common_utils_is_gnome () { - return is_xdg_current_desktop(DESKTOP_GNOME); + return is_xdg_current_desktop(DESKTOP_GNOME, SESSION_GNOME); } gboolean ayatana_common_utils_is_unity () { - return is_xdg_current_desktop(DESKTOP_UNITY); + return is_xdg_current_desktop(DESKTOP_UNITY, SESSION_UNITY); } gboolean ayatana_common_utils_is_mate () { - return is_xdg_current_desktop(DESKTOP_MATE); + return is_xdg_current_desktop(DESKTOP_MATE, SESSION_MATE); } gboolean ayatana_common_utils_is_xfce () { - return is_xdg_current_desktop(DESKTOP_XFCE); + return is_xdg_current_desktop(DESKTOP_XFCE, SESSION_XFCE); } gboolean ayatana_common_utils_is_pantheon () { - return is_xdg_current_desktop(DESKTOP_PANTHEON); + return is_xdg_current_desktop(DESKTOP_PANTHEON, SESSION_PANTHEON); } gboolean ayatana_common_utils_is_budgie () { - return is_xdg_current_desktop(DESKTOP_BUDGIE); + return is_xdg_current_desktop(DESKTOP_BUDGIE, SESSION_BUDGIE); } gboolean diff --git a/src/utils.h b/src/utils.h index b8e70cb..59bf008 100644 --- a/src/utils.h +++ b/src/utils.h @@ -29,6 +29,13 @@ static const char *DESKTOP_GNOME = "GNOME"; static const char *DESKTOP_XFCE = "XFCE"; static const char *DESKTOP_PANTHEON = "PANTHEON"; static const char *DESKTOP_BUDGIE = "Budgie"; +static const char *SESSION_LOMIRI = "ubuntu-touch"; +static const char *SESSION_UNITY = NULL; +static const char *SESSION_MATE = "mate"; +static const char *SESSION_GNOME = "gnome"; +static const char *SESSION_XFCE = "xfce"; +static const char *SESSION_PANTHEON = NULL; +static const char *SESSION_BUDGIE = "budgie-desktop"; gboolean ayatana_common_utils_is_lomiri(); gboolean ayatana_common_utils_is_unity(); |