Didier Roche has proposed merging ~didrocks/ubuntu/+source/gnome-shell:resolve-gdm-symlink into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/master.
Requested reviews: Ubuntu Desktop (ubuntu-desktop) For more details, see: https://code.launchpad.net/~didrocks/ubuntu/+source/gnome-shell/+git/gnome-shell/+merge/357609 -- Your team Ubuntu Desktop is requested to review the proposed merge of ~didrocks/ubuntu/+source/gnome-shell:resolve-gdm-symlink into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/master.
diff --git a/debian/changelog b/debian/changelog index c86e666..ecf0df1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,9 @@ gnome-shell (3.30.1-2ubuntu2) UNRELEASED; urgency=medium * debian/patches/ubuntu/background_login.patch: - match Yaru theme in the ubuntu session instead of our previous GDM background (LP: #1789356) + * debian/patches/ubuntu/resolve_alternate_theme_path.patch: + - ensure we resolve finale theme file path to correctly load assets + under gdm (LP: #1798747) -- Didier Roche <didro...@ubuntu.com> Wed, 17 Oct 2018 14:58:42 +0200 diff --git a/debian/patches/series b/debian/patches/series index 7397e65..2d27e92 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -19,3 +19,4 @@ sessionMode-add-support-for-debugFlags-parameter.patch st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch st-scroll-view-Remove-scrollbars-references-on-dispose.patch ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch +ubuntu/resolve_alternate_theme_path.patch diff --git a/debian/patches/ubuntu/resolve_alternate_theme_path.patch b/debian/patches/ubuntu/resolve_alternate_theme_path.patch new file mode 100644 index 0000000..74132bf --- /dev/null +++ b/debian/patches/ubuntu/resolve_alternate_theme_path.patch @@ -0,0 +1,74 @@ +From: Didier Roche <didro...@ubuntu.com> +Date: Mon, 22 Oct 2019 10:22:06 +0100 +Subject: Resolve real path name for theme file + + We are using alternative theme paths. Some of them are symlinks like + gdm3.css. It points to a different directory and we need to ensure + assets are loaded from the real theme path then (assets path are + relative to it). + Expose thus realpath() to gjs and ensure we use the original file + itself when loading the stylesheet. +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1798747 +Forwarded: Not-needed (upstream doesn't support officially theming) +Index: gnome-shell-3.30.1/src/shell-global.c +=================================================================== +--- gnome-shell-3.30.1.orig/src/shell-global.c ++++ gnome-shell-3.30.1/src/shell-global.c +@@ -1908,3 +1908,23 @@ shell_global_set_debug_flags (ShellGloba + g_object_notify (G_OBJECT (global), "debug-flags"); + } + } ++ ++/** ++ * shell_global_realpath: ++ * @global: A #ShellGlobal ++ * @path: Path to call realpath on ++ * ++ * Returns: the realpath call on the path argument. Returns the caller ++ * unchanged if already the canonicalized filename is given, or if ++ * realpath() returned any error. ++ */ ++const char* ++shell_global_realpath (ShellGlobal *global, ++ const char *path) ++{ ++ char *res = realpath (path, NULL); ++ ++ if (!res) ++ return path; ++ return res; ++} +\ No newline at end of file +Index: gnome-shell-3.30.1/src/shell-global.h +=================================================================== +--- gnome-shell-3.30.1.orig/src/shell-global.h ++++ gnome-shell-3.30.1/src/shell-global.h +@@ -37,6 +37,9 @@ void shell_global_get_pointer + int *y, + ClutterModifierType *mods); + ++const char* shell_global_realpath (ShellGlobal *global, ++ const char *path); ++ + typedef struct { + guint glibc_uordblks; + +Index: gnome-shell-3.30.1/js/ui/main.js +=================================================================== +--- gnome-shell-3.30.1.orig/js/ui/main.js ++++ gnome-shell-3.30.1/js/ui/main.js +@@ -262,12 +262,12 @@ function _getStylesheet(name) { + 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); ++ let stylesheet = Gio.file_new_for_path(global.realpath(path)); + if (stylesheet.query_exists(null)) + return stylesheet; + } + +- stylesheet = Gio.File.new_for_path(global.datadir + '/theme/' + name); ++ stylesheet = Gio.File.new_for_path(global.realpath(global.datadir + '/theme/' + name)); + if (stylesheet.query_exists(null)) + return stylesheet; +
-- ubuntu-desktop mailing list ubuntu-desktop@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop