From dc443372218d9cc4a5daf5c416d767f445f7f9ce Mon Sep 17 00:00:00 2001 From: Ali Abdallah Date: Sat, 2 May 2020 11:12:44 +0200 Subject: Initialize Xfconf when the backend is to be used Previously, xfconf_init was called on g_io_module_load. But this will fatally fail on systems with no xfconfd running. See Bug #14789 for more details. --- gsettings-backend/xfconf-giomodule.c | 9 --------- gsettings-backend/xfconf-gsettings-backend.c | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'gsettings-backend') diff --git a/gsettings-backend/xfconf-giomodule.c b/gsettings-backend/xfconf-giomodule.c index 6ca44fd..d8e847a 100644 --- a/gsettings-backend/xfconf-giomodule.c +++ b/gsettings-backend/xfconf-giomodule.c @@ -31,14 +31,6 @@ G_MODULE_EXPORT XFCONF_EXPORT void g_io_module_load (GIOModule *module) { - GError *error = NULL; - - if (!xfconf_init (&error)) { - g_critical ("Failed to get connection to xfconfd: %s", error->message); - g_error_free (error); - return; - } - g_type_module_use(G_TYPE_MODULE(module)); g_io_extension_point_implement(G_SETTINGS_BACKEND_EXTENSION_POINT_NAME, @@ -49,7 +41,6 @@ G_MODULE_EXPORT XFCONF_EXPORT void g_io_module_load (GIOModule *module) G_MODULE_EXPORT XFCONF_EXPORT void g_io_module_unload (GIOModule *module) { - xfconf_shutdown(); } /* Module query */ diff --git a/gsettings-backend/xfconf-gsettings-backend.c b/gsettings-backend/xfconf-gsettings-backend.c index 53cae50..27a3757 100644 --- a/gsettings-backend/xfconf-gsettings-backend.c +++ b/gsettings-backend/xfconf-gsettings-backend.c @@ -297,6 +297,8 @@ xfconf_gsettings_backend_finalize (XfconfGsettingsBackend *self) g_hash_table_destroy (self->subscribed_prop); + xfconf_shutdown(); + G_OBJECT_CLASS(xfconf_gsettings_backend_parent_class)->finalize((GObject*)self); } @@ -304,6 +306,13 @@ static void xfconf_gsettings_backend_init (XfconfGsettingsBackend *self) { const gchar *prg_name; + GError *error = NULL; + + if (!xfconf_init (&error)) { + g_critical ("Failed to get connection to xfconfd: %s", error->message); + g_error_free (error); + return; + } self->nhandled_tree_node = 0; -- cgit v1.2.1