summary refs log tree commit diff
path: root/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome/misc/gpaste/fix-paths.patch')
-rw-r--r--pkgs/desktops/gnome/misc/gpaste/fix-paths.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch b/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
new file mode 100644
index 0000000000000..46e30ce2e2cb1
--- /dev/null
+++ b/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
@@ -0,0 +1,37 @@
+--- a/src/gnome-shell/extension.js
++++ b/src/gnome-shell/extension.js
+@@ -6,6 +6,8 @@
+ 
+ const Config = imports.misc.config;
+ 
++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
++
+ imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
+ imports.gi.versions.GLib = '2.0';
+ imports.gi.versions.GPaste = '1.0';
+--- a/src/gnome-shell/prefs.js
++++ b/src/gnome-shell/prefs.js
+@@ -6,6 +6,8 @@
+ 
+ const Gettext = imports.gettext;
+ 
++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
++
+ //const { GPaste } = imports.gi;
+ 
+ const ExtensionUtils = imports.misc.extensionUtils;
+--- a/src/libgpaste/settings/gpaste-settings.c
++++ b/src/libgpaste/settings/gpaste-settings.c
+@@ -1013,7 +1013,11 @@
+     }
+     else
+     {
+-        return g_settings_new (G_PASTE_SETTINGS_NAME);
++        // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library
++        GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL);
++        g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE);
++        g_settings_schema_source_unref (schema_source);
++        return g_settings_new_full (schema, NULL, NULL);
+     }
+ }
+