From fe9a02e514e652d4127ba8f4882ca6b4860c72d7 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Fri, 10 Jun 2011 16:56:23 +0900 Subject: [PATCH] Keep a reference to GSettings handle until server-context is disposed. --- src/server-context.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/server-context.c b/src/server-context.c index a8de8ea4..a1a500b3 100644 --- a/src/server-context.c +++ b/src/server-context.c @@ -116,6 +116,7 @@ struct _ServerContext { gulong key_released_handler; gulong notify_visible_handler; + GSettings *settings; ServerContextUIToolkitType ui_toolkit; }; @@ -398,6 +399,11 @@ server_context_dispose (GObject *object) context->introspection_data = NULL; } + if (context->settings) { + g_object_unref (context->settings); + context->settings = NULL; + } + G_OBJECT_CLASS (server_context_parent_class)->dispose (object); } @@ -473,7 +479,6 @@ server_context_class_init (ServerContextClass *klass) static void server_context_init (ServerContext *context) { - GSettings *settings; GError *error; context->connection = NULL; @@ -501,8 +506,8 @@ server_context_init (ServerContext *context) context->ui_toolkit = UI_TOOLKIT_DEFAULT; - settings = g_settings_new ("org.fedorahosted.eekboard"); - g_settings_bind (settings, "ui-toolkit", + context->settings = g_settings_new ("org.fedorahosted.eekboard"); + g_settings_bind (context->settings, "ui-toolkit", context, "ui-toolkit", G_SETTINGS_BIND_GET); }