[gnome-settings-daemon/wip/xsettings-manager] xsettings: wire overrides into GSettings
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/wip/xsettings-manager] xsettings: wire overrides into GSettings
- Date: Thu, 8 Mar 2012 15:44:59 +0000 (UTC)
commit a8f1bde2d0aa5f3a67610f60fbe47191899638a4
Author: Ryan Lortie <desrt desrt ca>
Date: Thu Mar 8 10:29:04 2012 -0500
xsettings: wire overrides into GSettings
There is now a new GSettings 'override' key which can override the value
of arbitrary XSETTINGS.
plugins/xsettings/gsd-xsettings-manager.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/plugins/xsettings/gsd-xsettings-manager.c b/plugins/xsettings/gsd-xsettings-manager.c
index 868a864..f46910f 100644
--- a/plugins/xsettings/gsd-xsettings-manager.c
+++ b/plugins/xsettings/gsd-xsettings-manager.c
@@ -52,6 +52,7 @@
#define SOUND_SETTINGS_SCHEMA "org.gnome.desktop.sound"
#define XSETTINGS_PLUGIN_SCHEMA "org.gnome.settings-daemon.plugins.xsettings"
+#define XSETTINGS_OVERRIDE_KEY "overrides"
#define GTK_MODULES_DISABLED_KEY "disabled-gtk-modules"
#define GTK_MODULES_ENABLED_KEY "enabled-gtk-modules"
@@ -575,6 +576,24 @@ xft_callback (GSettings *settings,
}
static void
+override_callback (GSettings *settings,
+ const gchar *key,
+ GnomeXSettingsManager *manager)
+{
+ GVariant *value;
+ int i;
+
+ value = g_settings_get_value (settings, XSETTINGS_OVERRIDE_KEY);
+
+ for (i = 0; manager->priv->managers[i]; i++) {
+ xsettings_manager_set_overrides (manager->priv->managers[i], value);
+ xsettings_manager_notify (manager->priv->managers [i]);
+ }
+
+ g_variant_unref (value);
+}
+
+static void
plugin_callback (GSettings *settings,
const char *key,
GnomeXSettingsManager *manager)
@@ -582,6 +601,8 @@ plugin_callback (GSettings *settings,
if (g_str_equal (key, GTK_MODULES_DISABLED_KEY) ||
g_str_equal (key, GTK_MODULES_ENABLED_KEY)) {
/* Do nothing, as GsdXsettingsGtk will handle it */
+ } else if (g_str_equal (key, XSETTINGS_OVERRIDE_KEY)) {
+ override_callback (settings, key, manager);
} else {
xft_callback (settings, key, manager);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]