summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch')
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
new file mode 100644
index 00000000000..8b64b3df801
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
@@ -0,0 +1,36 @@
+diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
+index 9c166dbaf..ef368f8d4 100644
+--- a/src/libedataserver/e-source-registry.c
++++ b/src/libedataserver/e-source-registry.c
+@@ -116,6 +116,8 @@ struct _ESourceRegistryPrivate {
+ 	GHashTable *sources;
+ 	GMutex sources_lock;
+ 
++	GSettingsSchemaSource *schema_source;
++	GSettingsSchema *schema;
+ 	GSettings *settings;
+ 
+ 	gboolean initialized;
+@@ -1339,7 +1341,11 @@ source_registry_dispose (GObject *object)
+ 	if (priv->settings != NULL) {
+ 		g_signal_handlers_disconnect_by_data (priv->settings, object);
+ 		g_object_unref (priv->settings);
++		g_settings_schema_unref (priv->schema);
++		g_settings_schema_source_unref (priv->schema_source);
+ 		priv->settings = NULL;
++		priv->schema = NULL;
++		priv->schema_source = NULL;
+ 	}
+ 
+ 	/* Chain up to parent's finalize() method. */
+@@ -1743,7 +1749,9 @@ e_source_registry_init (ESourceRegistry *registry)
+ 
+ 	g_mutex_init (&registry->priv->sources_lock);
+ 
+-	registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
++	GSettingsSchemaSource *schema_source = registry->priv->schema_source = g_settings_schema_source_new_from_directory ("@ESD_GSETTINGS_PATH@",  g_settings_schema_source_get_default (), TRUE, NULL);
++	registry->priv->schema = g_settings_schema_source_lookup (schema_source, GSETTINGS_SCHEMA, FALSE);
++	registry->priv->settings = g_settings_new_full (registry->priv->schema, NULL, NULL);
+ 
+ 	g_signal_connect (
+ 		registry->priv->settings, "changed",