diff options
author | Ali Abdallah <aabdallah@suse.de> | 2020-05-02 11:12:44 +0200 |
---|---|---|
committer | Ali Abdallah <aabdallah@suse.de> | 2020-05-02 11:12:44 +0200 |
commit | dc443372218d9cc4a5daf5c416d767f445f7f9ce (patch) | |
tree | fde3b94d89a2398dc0c6063390e8c59303992eb1 /gsettings-backend | |
parent | 79bdf666dfa6a6f38489d6c62347d4a6d5820c60 (diff) | |
download | xfconf-dc443372218d9cc4a5daf5c416d767f445f7f9ce.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.
Diffstat (limited to 'gsettings-backend')
-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; |