summaryrefslogtreecommitdiff
path: root/subprojects/extensions-tool
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2022-11-22 19:40:37 +0100
committerMarge Bot <marge-bot@gnome.org>2023-02-03 17:23:42 +0000
commit007778880ba10127e7872724082458d38e079560 (patch)
tree70def7da713cc499ce652c5f1058996feea73d0b /subprojects/extensions-tool
parente86a0b32c2dd199daa9d9bd80349705f0ae391a7 (diff)
downloadgnome-shell-007778880ba10127e7872724082458d38e079560.tar.gz
extension-tool: Fix falling back to GSettings
When we switched the tool to the public Extensions service, the fallback to GSettings broke in the case GNOME is installed but not running (because the service can be autostarted, albeit it'll fail later). Fix this by also falling back when we don't get a response from gnome-shell. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6127 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2552>
Diffstat (limited to 'subprojects/extensions-tool')
-rw-r--r--subprojects/extensions-tool/src/command-disable.c29
-rw-r--r--subprojects/extensions-tool/src/command-enable.c29
2 files changed, 26 insertions, 32 deletions
diff --git a/subprojects/extensions-tool/src/command-disable.c b/subprojects/extensions-tool/src/command-disable.c
index 93c316bf7..bae11b256 100644
--- a/subprojects/extensions-tool/src/command-disable.c
+++ b/subprojects/extensions-tool/src/command-disable.c
@@ -26,6 +26,18 @@
#include "config.h"
static gboolean
+disable_extension_gsettings (const char *uuid)
+{
+ g_autoptr(GSettings) settings = get_shell_settings ();
+
+ if (settings == NULL)
+ return FALSE;
+
+ return settings_list_remove (settings, "enabled-extensions", uuid) &&
+ settings_list_add (settings, "disabled-extensions", uuid);
+}
+
+static gboolean
disable_extension_dbus (GDBusProxy *proxy,
const char *uuid)
{
@@ -42,10 +54,7 @@ disable_extension_dbus (GDBusProxy *proxy,
&error);
if (response == NULL)
- {
- g_printerr (_("Failed to connect to GNOME Shell\n"));
- return FALSE;
- }
+ return disable_extension_gsettings (uuid);
g_variant_get (response, "(b)", &success);
@@ -56,18 +65,6 @@ disable_extension_dbus (GDBusProxy *proxy,
}
static gboolean
-disable_extension_gsettings (const char *uuid)
-{
- g_autoptr(GSettings) settings = get_shell_settings ();
-
- if (settings == NULL)
- return FALSE;
-
- return settings_list_remove (settings, "enabled-extensions", uuid) &&
- settings_list_add (settings, "disabled-extensions", uuid);
-}
-
-static gboolean
disable_extension (const char *uuid)
{
g_autoptr (GDBusProxy) proxy = NULL;
diff --git a/subprojects/extensions-tool/src/command-enable.c b/subprojects/extensions-tool/src/command-enable.c
index 6ae3a8351..712de4a3d 100644
--- a/subprojects/extensions-tool/src/command-enable.c
+++ b/subprojects/extensions-tool/src/command-enable.c
@@ -26,6 +26,18 @@
#include "config.h"
static gboolean
+enable_extension_gsettings (const char *uuid)
+{
+ g_autoptr(GSettings) settings = get_shell_settings ();
+
+ if (settings == NULL)
+ return FALSE;
+
+ return settings_list_add (settings, "enabled-extensions", uuid) &&
+ settings_list_remove (settings, "disabled-extensions", uuid);
+}
+
+static gboolean
enable_extension_dbus (GDBusProxy *proxy,
const char *uuid)
{
@@ -42,10 +54,7 @@ enable_extension_dbus (GDBusProxy *proxy,
&error);
if (response == NULL)
- {
- g_printerr (_("Failed to connect to GNOME Shell\n"));
- return FALSE;
- }
+ return enable_extension_gsettings (uuid);
g_variant_get (response, "(b)", &success);
@@ -56,18 +65,6 @@ enable_extension_dbus (GDBusProxy *proxy,
}
static gboolean
-enable_extension_gsettings (const char *uuid)
-{
- g_autoptr(GSettings) settings = get_shell_settings ();
-
- if (settings == NULL)
- return FALSE;
-
- return settings_list_add (settings, "enabled-extensions", uuid) &&
- settings_list_remove (settings, "disabled-extensions", uuid);
-}
-
-static gboolean
enable_extension (const char *uuid)
{
g_autoptr (GDBusProxy) proxy = NULL;