aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2025-02-28 16:11:01 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2025-02-28 17:34:47 +0100
commitcf42441b43aec2e0457ec6e4dfdf2af8e58ac716 (patch)
tree8d985efbf2a7a35f6aa05a8ef4b27fd3a830a305
parent78b5e71b2130f78bed2583041a346ee837f0ee7d (diff)
downloadlibayatana-common-cf42441b43aec2e0457ec6e4dfdf2af8e58ac716.tar.gz
libayatana-common-cf42441b43aec2e0457ec6e4dfdf2af8e58ac716.tar.bz2
libayatana-common-cf42441b43aec2e0457ec6e4dfdf2af8e58ac716.zip
src/utils.(c|h): Add ayatana_common_utils_is_ubuntutouch() function.
-rw-r--r--src/utils.c6
-rw-r--r--src/utils.h3
-rw-r--r--tests/tst_utils.cpp11
-rw-r--r--tests/tst_utils.vala8
4 files changed, 28 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 0a33a74..712b060 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -74,6 +74,12 @@ ayatana_common_utils_is_lomiri ()
}
gboolean
+ayatana_common_utils_is_ubuntutouch ()
+{
+ return is_xdg_current_desktop(DESKTOP_UBUNTUTOUCH, SESSION_UBUNTUTOUCH);
+}
+
+gboolean
ayatana_common_utils_is_gnome ()
{
return is_xdg_current_desktop(DESKTOP_GNOME, SESSION_GNOME);
diff --git a/src/utils.h b/src/utils.h
index 9d3e641..c7c658e 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -23,6 +23,7 @@
#include <gio/gio.h>
static const char * const DESKTOP_LOMIRI = "Lomiri";
+static const char * const DESKTOP_UBUNTUTOUCH = NULL;
static const char * const DESKTOP_UNITY = "Unity";
static const char * const DESKTOP_MATE = "MATE";
static const char * const DESKTOP_GNOME = "GNOME";
@@ -30,6 +31,7 @@ static const char * const DESKTOP_XFCE = "XFCE";
static const char * const DESKTOP_PANTHEON = "PANTHEON";
static const char * const DESKTOP_BUDGIE = "Budgie";
static const char * const SESSION_LOMIRI = "ubuntu-touch";
+static const char * const SESSION_UBUNTUTOUCH = "ubuntu-touch";
static const char * const SESSION_UNITY = NULL;
static const char * const SESSION_MATE = "mate";
static const char * const SESSION_GNOME = "gnome";
@@ -38,6 +40,7 @@ static const char * const SESSION_PANTHEON = NULL;
static const char * const SESSION_BUDGIE = "budgie-desktop";
gboolean ayatana_common_utils_is_lomiri();
+gboolean ayatana_common_utils_is_ubuntutouch();
gboolean ayatana_common_utils_is_unity();
gboolean ayatana_common_utils_is_gnome();
gboolean ayatana_common_utils_is_mate();
diff --git a/tests/tst_utils.cpp b/tests/tst_utils.cpp
index a1cf7c5..0d59da0 100644
--- a/tests/tst_utils.cpp
+++ b/tests/tst_utils.cpp
@@ -49,6 +49,17 @@ TEST_F(XdgCurrentDesktopUtilsTest, isLomiri)
EXPECT_TRUE(ayatana_common_utils_is_lomiri());
}
+TEST_F(XdgCurrentDesktopUtilsTest, isUbuntuTouch)
+{
+ unsetenv("XDG_CURRENT_DESKTOP");
+ unsetenv("DESKTOP_SESSION");
+ EXPECT_FALSE(ayatana_common_utils_is_ubuntutouch());
+ setenv("XDG_CURRENT_DESKTOP", "Lomiri", 1);
+ EXPECT_FALSE(ayatana_common_utils_is_ubuntutouch());
+ setenv("DESKTOP_SESSION", "ubuntu-touch", 1);
+ EXPECT_TRUE(ayatana_common_utils_is_ubuntutouch());
+}
+
TEST_F(XdgCurrentDesktopUtilsTest, isGnome)
{
unsetenv("XDG_CURRENT_DESKTOP");
diff --git a/tests/tst_utils.vala b/tests/tst_utils.vala
index 44ce6fe..4d070e7 100644
--- a/tests/tst_utils.vala
+++ b/tests/tst_utils.vala
@@ -14,6 +14,14 @@ static int main(string[] args)
set_variable("XDG_CURRENT_DESKTOP", "Lomiri", true);
assert(utils_is_lomiri());
+ unset_variable("DESKTOP_SESSION");
+ unset_variable("XDG_CURRENT_DESKTOP");
+ assert(! utils_is_ubuntutouch());
+ set_variable("XDG_CURRENT_DESKTOP", "Lomiri", true);
+ assert(! utils_is_ubuntutouch());
+ set_variable("DESKTOP_SESSION", "ubuntu-touch", true);
+ assert(utils_is_ubuntutouch());
+
unset_variable("XDG_CURRENT_DESKTOP");
unset_variable("DESKTOP_SESSION");
assert(! utils_is_gnome());