diff options
author | Ali Abdallah <aabdallah@suse.de> | 2020-05-02 11:12:44 +0200 |
---|---|---|
committer | Ali Abdallah <aabdallah@suse.de> | 2020-05-06 14:41:35 +0200 |
commit | 494c76f919d957b0cd0d10dfff5e043db92c4e64 (patch) | |
tree | d5d863eace4c776e5bdca407fd2435b48e97cbdf | |
parent | a9a7c892487b26ee4e72df9632811581b9de9cf6 (diff) | |
download | xfconf-494c76f919d957b0cd0d10dfff5e043db92c4e64.tar.gz |
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.
-rw-r--r-- | gsettings-backend/xfconf-giomodule.c | 9 | ||||
-rw-r--r-- | gsettings-backend/xfconf-gsettings-backend.c | 9 |
2 files changed, 9 insertions, 9 deletions
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; |