diff --git a/gnome/src/eel-gconf-extensions.c b/gnome/src/eel-gconf-extensions.c index c24251aefc227496388c094a5ed55a8128333cb4..99be9287350befeb8d8cf2b89aedcebcb6a04bbd 100644 --- a/gnome/src/eel-gconf-extensions.c +++ b/gnome/src/eel-gconf-extensions.c @@ -34,12 +34,10 @@ static GConfClient *global_gconf_client = NULL; -static void -global_client_free(void) +void eel_gconf_global_client_free(void) { - if (global_gconf_client == NULL) { + if (global_gconf_client == NULL) return; - } g_object_unref(G_OBJECT(global_gconf_client)); global_gconf_client = NULL; @@ -82,10 +80,8 @@ eel_gconf_client_get_global(void) } - if (global_gconf_client == NULL) { + if (global_gconf_client == NULL) global_gconf_client = gconf_client_get_default(); - g_atexit(global_client_free); - } return global_gconf_client; } diff --git a/gnome/src/eel-gconf-extensions.h b/gnome/src/eel-gconf-extensions.h index d380387bea29a25ebf11d7a5a20bb6c299738ac7..e9139477759e3388c84881688bf62edbca1b0001 100644 --- a/gnome/src/eel-gconf-extensions.h +++ b/gnome/src/eel-gconf-extensions.h @@ -57,54 +57,52 @@ BEGIN_EXTERN_C #define EEL_GCONF_UNDEFINED_CONNECTION 0 -GConfClient *eel_gconf_client_get_global (void); -gboolean eel_gconf_handle_error (GError **error); -void eel_gconf_set_boolean (const char *key, - gboolean boolean_value); -gboolean eel_gconf_get_boolean (const char *key); -int eel_gconf_get_integer (const char *key); -void eel_gconf_set_integer (const char *key, - int int_value); -gfloat eel_gconf_get_float (const char *key); -void eel_gconf_set_float (const char *key, - gfloat float_value); -char * eel_gconf_get_string (const char *key); -void eel_gconf_set_string (const char *key, - const char *string_value); -GSList * eel_gconf_get_string_list (const char *key); -void eel_gconf_set_string_list (const char *key, - const GSList *string_list_value); -gboolean eel_gconf_is_default (const char *key); -gboolean eel_gconf_monitor_add (const char *directory); -gboolean eel_gconf_monitor_remove (const char *directory); -void eel_gconf_suggest_sync (void); -GConfValue* eel_gconf_get_value (const char *key); -gboolean eel_gconf_value_is_equal (const GConfValue *a, - const GConfValue *b); -void eel_gconf_set_value (const char *key, - const GConfValue *value); -gboolean eel_gconf_key_exists (const char *key); - -void eel_gconf_value_free (GConfValue *value); -void eel_gconf_unset (const char *key); +GConfClient *eel_gconf_client_get_global(void); + +void eel_gconf_global_client_free(void); + +gboolean eel_gconf_handle_error(GError **error); + +void eel_gconf_set_boolean(const gchar *key, gboolean boolean_value); + +gboolean eel_gconf_get_boolean(const gchar *key); + +int eel_gconf_get_integer(const gchar *key); + +void eel_gconf_set_integer(const gchar *key, gint value); + +gfloat eel_gconf_get_float(const gchar *key); + +void eel_gconf_set_float(const gchar *key, gfloat value); + +gchar *eel_gconf_get_string(const gchar *key); +void eel_gconf_set_string(const gchar *key, const gchar *value); +GSList *eel_gconf_get_string_list (const gchar *key); +void eel_gconf_set_string_list(const gchar *key, const GSList *value); +gboolean eel_gconf_is_default(const gchar *key); +gboolean eel_gconf_monitor_add(const gchar *directory); +gboolean eel_gconf_monitor_remove(const gchar *directory); +void eel_gconf_suggest_sync(void); +GConfValue *eel_gconf_get_value(const gchar *key); +gboolean eel_gconf_value_is_equal(const GConfValue *a, const GConfValue *b); +void eel_gconf_set_value (const gchar *key, const GConfValue *value); +gboolean eel_gconf_key_exists(const gchar *key); +void eel_gconf_value_free(GConfValue *value); +void eel_gconf_unset(const gchar *key); /* Functions which weren't part of the eel-gconf-extensions.h file from eel */ -GSList *eel_gconf_get_integer_list (const char *key); -void eel_gconf_set_integer_list (const char *key, - const GSList *slist); -void gpdf_notification_add (const char *key, - GConfClientNotifyFunc notification_callback, - gpointer callback_data, - GList **notifiers); -void gpdf_notification_remove (GList **notifiers); -guint eel_gconf_notification_add (const char *key, - GConfClientNotifyFunc notification_callback, - gpointer callback_data); -void eel_gconf_notification_remove (guint notification_id); +GSList *eel_gconf_get_integer_list(const gchar *key); +void eel_gconf_set_integer_list(const gchar *key, const GSList *slist); +void gpdf_notification_add(const gchar *key, GConfClientNotifyFunc notification_callback, + gpointer callback_data, GList **notifiers); +void gpdf_notification_remove(GList **notifiers); +guint eel_gconf_notification_add(const gchar *key, + GConfClientNotifyFunc notification_callback, + gpointer callback_data); +void eel_gconf_notification_remove(guint notification_id); #ifdef __cplusplus END_EXTERN_C #endif #endif /* EEL_GCONF_EXTENSIONS_H */ - diff --git a/gnome/src/main.c b/gnome/src/main.c index 8a08c4ef7b2242a24448b57daee5f65035547686..9bb51e1dc2f1c57d088aec73305037352e7c24c1 100644 --- a/gnome/src/main.c +++ b/gnome/src/main.c @@ -129,6 +129,7 @@ main(int argc, char *argv[]) shortcuts_destroy_bindings(); + eel_gconf_global_client_free(); OUT: #if !GTK_CHECK_VERSION(2,32,0) gdk_threads_leave();