From ca7b6632c336ee7fa991ffaa8b851491d558e70b Mon Sep 17 00:00:00 2001 From: Jasmine Hassan Date: Tue, 4 Dec 2012 19:03:17 +0200 Subject: [daemon] quick 'n dirty initial review of gsettings port 1. import: Don't choke if there are old plugins laying around http://git.gnome.org/browse/gnome-settings-daemon/commit/?id=18e57e126ff6a6ab2980c119aebef087227e2a54 2. Alleviate #23 -- no more "g_object_unref: assertion 'G_IS_OBJECT (object)' failed" when starting m-c-c "Appearance" properties. --- mate-settings-daemon/mate-settings-plugin-info.c | 26 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'mate-settings-daemon/mate-settings-plugin-info.c') diff --git a/mate-settings-daemon/mate-settings-plugin-info.c b/mate-settings-daemon/mate-settings-plugin-info.c index 9936fb7..17bc0d6 100644 --- a/mate-settings-daemon/mate-settings-plugin-info.c +++ b/mate-settings-daemon/mate-settings-plugin-info.c @@ -117,7 +117,9 @@ mate_settings_plugin_info_finalize (GObject *object) g_free (info->priv->copyright); g_strfreev (info->priv->authors); - g_object_unref (info->priv->settings); + if (info->priv->settings != NULL) { + g_object_unref (info->priv->settings); + } G_OBJECT_CLASS (mate_settings_plugin_info_parent_class)->finalize (object); } @@ -288,8 +290,8 @@ mate_settings_plugin_info_fill_from_file (MateSettingsPluginInfo *info, } static void -plugin_enabled_cb (GSettings *settings, - gchar *key, +plugin_enabled_cb (GSettings *settings, + gchar *key, MateSettingsPluginInfo *info) { if (g_settings_get_boolean (info->priv->settings, key)) { @@ -596,11 +598,17 @@ void mate_settings_plugin_info_set_schema (MateSettingsPluginInfo *info, gchar *schema) { - g_return_if_fail (MATE_IS_SETTINGS_PLUGIN_INFO (info)); + int priority; + + g_return_if_fail (MATE_IS_SETTINGS_PLUGIN_INFO (info)); + + info->priv->settings = g_settings_new (schema); + info->priv->enabled = g_settings_get_boolean (info->priv->settings, "active"); + + priority = g_settings_get_int (info->priv->settings, "priority"); + if (priority > 0) + info->priv->priority = priority; - info->priv->settings = g_settings_new (schema); - info->priv->priority = g_settings_get_int(info->priv->settings, "priority"); - info->priv->enabled = g_settings_get_boolean(info->priv->settings, "active"); - - g_signal_connect (info->priv->settings, "changed::active", G_CALLBACK (plugin_enabled_cb), info); + g_signal_connect (G_OBJECT (info->priv->settings), "changed::active", + G_CALLBACK (plugin_enabled_cb), info); } -- cgit v1.2.1