diff options
author | Jasmine Hassan <[email protected]> | 2012-12-04 19:03:17 +0200 |
---|---|---|
committer | Jasmine Hassan <[email protected]> | 2012-12-05 04:26:40 +0200 |
commit | ca7b6632c336ee7fa991ffaa8b851491d558e70b (patch) | |
tree | bd034e4591326baf739e4342be6cfb31ed1db3a8 /mate-settings-daemon/mate-settings-plugin-info.c | |
parent | a279b02b4d563d2300ccb588e5969c7dfac8108e (diff) | |
download | mate-settings-daemon-ca7b6632c336ee7fa991ffaa8b851491d558e70b.tar.bz2 mate-settings-daemon-ca7b6632c336ee7fa991ffaa8b851491d558e70b.tar.xz |
[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.
Diffstat (limited to 'mate-settings-daemon/mate-settings-plugin-info.c')
-rw-r--r-- | mate-settings-daemon/mate-settings-plugin-info.c | 26 |
1 files changed, 17 insertions, 9 deletions
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); } |