From 0f4ce0975e38837d1721ae2a3f5443137c11af30 Mon Sep 17 00:00:00 2001 From: Jan-Michael Brummer Date: Tue, 28 Mar 2023 11:06:46 +0200 Subject: Update KDE config plugin available check --- src/backend/plugins/config-kde/config-kde.c | 14 ++++++++++++-- tests/config-kde-test.c | 3 ++- tests/meson.build | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/backend/plugins/config-kde/config-kde.c b/src/backend/plugins/config-kde/config-kde.c index 124c5b9..56c83c0 100644 --- a/src/backend/plugins/config-kde/config-kde.c +++ b/src/backend/plugins/config-kde/config-kde.c @@ -88,10 +88,20 @@ px_config_kde_set_config_file (PxConfigKde *self, g_autoptr (GFile) file = NULL; g_autoptr (GFileInputStream) istr = NULL; g_autoptr (GDataInputStream) dstr = NULL; + const char *desktops; + + self->available = FALSE; + + desktops = getenv ("XDG_CURRENT_DESKTOP"); + if (!desktops) + return; + + /* Remember that XDG_CURRENT_DESKTOP is a list of strings. */ + if (strstr (desktops, "KDE") == NULL) + return; g_clear_pointer (&self->config_file, g_free); self->config_file = proxy_file ? g_strdup (proxy_file) : g_build_filename (g_get_user_config_dir (), "kioslaverc", NULL); - self->available = FALSE; file = g_file_new_for_path (self->config_file); if (!file) { @@ -234,7 +244,7 @@ px_config_kde_is_available (PxConfig *config) { PxConfigKde *self = PX_CONFIG_KDE (config); - return self->available && g_getenv ("KDE_FULL_SESSION") != NULL; + return self->available; } static void diff --git a/tests/config-kde-test.c b/tests/config-kde-test.c index c918afd..c12d1f4 100644 --- a/tests/config-kde-test.c +++ b/tests/config-kde-test.c @@ -186,13 +186,14 @@ test_config_kde_fail (void) g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-pac", NULL); /* Disable KDE support */ - g_unsetenv ("KDE_FULL_SESSION"); + g_setenv ("XDG_CURRENT_DESKTOP", "SOMETHING_ELSE", TRUE); manager = px_test_manager_new ("config-kde", path); uri = g_uri_parse ("https://www.example.com", G_URI_FLAGS_PARSE_RELAXED, &error); config = px_manager_get_configuration (manager, uri, &error); + g_print ("%s", config[0]); g_assert_null (config[0]); } diff --git a/tests/meson.build b/tests/meson.build index 3fa6e5a..cd268f2 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -73,7 +73,7 @@ if get_option('tests') ) test('Config KDE test', config_kde_test, - env: [envs, 'KDE_FULL_SESSION=1'], + env: [envs, 'XDG_CURRENT_DESKTOP=KDE'], ) endif endif -- cgit v1.2.1