[gnome-shell/gnome-3-28] ui: Theme lookup should respect XDG_DATA_DIRS
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-28] ui: Theme lookup should respect XDG_DATA_DIRS
- Date: Wed, 20 Jun 2018 23:24:41 +0000 (UTC)
commit da96408098cdf1735b2c7a1b1c722ecb2a263ce9
Author: Didier Roche <didrocks ubuntu com>
Date: Fri Mar 30 09:44:14 2018 +0200
ui: Theme lookup should respect XDG_DATA_DIRS
Modes, extensions and other GNOME Shell assets are searched in appropriate
subdirectories of each directory in XDG_DATA_DIRS, falling back
to global.datadir.
However, this isn't the case for themes, which are currently always expected
in global.datadir, even when referenced by a mode in a different XDG_DATA_DIR.
The fix is to have the theme finding pattern follow the same logic as other
elements.
Fixes #167.
(cherry picked from commit d6d09fd3c82dd39dac1a764073040b57baeb8659)
js/ui/main.js | 8 ++++++++
1 file changed, 8 insertions(+)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index 2cfe941be..d86cf9e81 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -256,6 +256,14 @@ function _getStylesheet(name) {
if (stylesheet.query_exists(null))
return stylesheet;
+ let dataDirs = GLib.get_system_data_dirs();
+ for (let i = 0; i < dataDirs.length; i++) {
+ let path = GLib.build_filenamev([dataDirs[i], 'gnome-shell', 'theme', name]);
+ let stylesheet = Gio.file_new_for_path(path);
+ if (stylesheet.query_exists(null))
+ return stylesheet;
+ }
+
stylesheet = Gio.File.new_for_path(global.datadir + '/theme/' + name);
if (stylesheet.query_exists(null))
return stylesheet;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]