summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-03-28 11:06:46 +0200
committerJan-Michael Brummer <jan.brummer@tabos.org>2023-03-28 11:06:46 +0200
commit0f4ce0975e38837d1721ae2a3f5443137c11af30 (patch)
treedeb03f1e6fa63ce008954af90c9b1f36cc1ece6d
parent2644c741bf0e7fb7e327907a363975b65f47e89c (diff)
downloadlibproxy-git-0f4ce0975e38837d1721ae2a3f5443137c11af30.tar.gz
Update KDE config plugin available check
-rw-r--r--src/backend/plugins/config-kde/config-kde.c14
-rw-r--r--tests/config-kde-test.c3
-rw-r--r--tests/meson.build2
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