mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
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>
(cherry picked from commit 007778880b)
This commit is contained in:
parent
e845e63561
commit
733e65d9a8
2 changed files with 26 additions and 32 deletions
|
|
@ -25,6 +25,18 @@
|
|||
#include "common.h"
|
||||
#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);
|
||||
|
||||
|
|
@ -55,18 +64,6 @@ disable_extension_dbus (GDBusProxy *proxy,
|
|||
return success;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -25,6 +25,18 @@
|
|||
#include "common.h"
|
||||
#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);
|
||||
|
||||
|
|
@ -55,18 +64,6 @@ enable_extension_dbus (GDBusProxy *proxy,
|
|||
return success;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue