diff --git a/0001-windowCycler-Create-settings-before-chaining-up.patch b/0001-windowCycler-Create-settings-before-chaining-up.patch new file mode 100644 index 0000000..ef15c78 --- /dev/null +++ b/0001-windowCycler-Create-settings-before-chaining-up.patch @@ -0,0 +1,30 @@ +From f717defaef643ed5acf17dd75e0992cee904f575 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Sat, 16 Mar 2019 23:22:29 +0100 +Subject: [PATCH 1/2] windowCycler: Create settings before chaining up + +It's used in _getWindows() which is called from the parent's _init(). + +https://gitlab.gnome.org/GNOME/gnome-shell/issues/1064 +--- + js/ui/altTab.js | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/js/ui/altTab.js b/js/ui/altTab.js +index cdd5d8e21..fb9c875c8 100644 +--- a/js/ui/altTab.js ++++ b/js/ui/altTab.js +@@ -619,9 +619,8 @@ class WindowSwitcherPopup extends SwitcherPopup.SwitcherPopup { + var WindowCyclerPopup = GObject.registerClass( + class WindowCyclerPopup extends CyclerPopup { + _init() { +- super._init(); +- + this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' }); ++ super._init(); + } + + _getWindows() { +-- +2.21.0 + diff --git a/0002-dash-Fix-messed-up-icon-height.patch b/0002-dash-Fix-messed-up-icon-height.patch new file mode 100644 index 0000000..49610ed --- /dev/null +++ b/0002-dash-Fix-messed-up-icon-height.patch @@ -0,0 +1,70 @@ +From d4aeb9e5b94ba6bf9fe6f5c1652934c936f88fa2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Tue, 9 Apr 2019 03:03:54 +0200 +Subject: [PATCH 2/2] dash: Fix messed up icon height + +When determining the biggest icon size that fits the available height, +we first subtract the additional space requirements of icons (spacing, +padding, running indicator etc.) and then divide the result by the +number of icons to get the maximum size available to each icon texture. + +In the above, the additional space requirement of each icon is taken +from the first icon (as all icons are assumed to be the same), and +calculated as the difference between the icon button's preferred height +and the currently used icon size. + +To make sure that the icon is actually using the dash's current icon +size (even while animating to a new icon size), we enforce its height +during the size request and restore its original height afterwards. + +However after some recent changes, that step is causing troubles: +For some reason, the original height may be 0, and when we restore it, +we end up forcing a fixed non-height that bypasses the regular size +request machinery. + +While it is unclear where exactly the zero height comes from (maybe +waiting for a valid resource scale?), it is clear that it's best +to avoid forcing a fixed height. So instead of making the icon +texture comply with the assumed icon size, adjust the calculations +to use its current height request. + +https://gitlab.gnome.org/GNOME/gnome-shell/issues/1053 +--- + js/ui/dash.js | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +diff --git a/js/ui/dash.js b/js/ui/dash.js +index e60cdd8ad..6b5aeffb1 100644 +--- a/js/ui/dash.js ++++ b/js/ui/dash.js +@@ -584,22 +584,18 @@ var Dash = class Dash { + let firstButton = iconChildren[0].child; + let firstIcon = firstButton._delegate.icon; + +- let minHeight, natHeight; +- let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; +- +- // Enforce the current icon size during the size request ++ // Enforce valid spacings during the size request + firstIcon.icon.ensure_style(); +- let [, currentHeight] = firstIcon.icon.get_size(); +- firstIcon.icon.set_height(this.iconSize * scaleFactor); +- [minHeight, natHeight] = firstButton.get_preferred_height(-1); +- firstIcon.icon.set_height(currentHeight); ++ let [, iconHeight] = firstIcon.icon.get_preferred_height(-1); ++ let [, buttonHeight] = firstButton.get_preferred_height(-1); + + // Subtract icon padding and box spacing from the available height +- availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) + ++ availHeight -= iconChildren.length * (buttonHeight - iconHeight) + + (iconChildren.length - 1) * spacing; + + let availSize = availHeight / iconChildren.length; + ++ let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; + let iconSizes = baseIconSizes.map(s => s * scaleFactor); + + let newIconSize = baseIconSizes[0]; +-- +2.21.0 + diff --git a/gnome-shell.spec b/gnome-shell.spec index 0805824..c1fc7ff 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -1,6 +1,6 @@ Name: gnome-shell Version: 3.32.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -17,6 +17,15 @@ Patch1: gnome-shell-favourite-apps-firefox.patch Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch +# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/463 - fixes +# https://gitlab.gnome.org/GNOME/gnome-shell/issues/1064 / +# https://bugzilla.redhat.com/show_bug.cgi?id=1696270 +Patch4: 0001-windowCycler-Create-settings-before-chaining-up.patch +# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/494 - fixes +# https://gitlab.gnome.org/GNOME/gnome-shell/issues/1053 / +# https://bugzilla.redhat.com/show_bug.cgi?id=1690429 +Patch5: 0002-dash-Fix-messed-up-icon-height.patch + %define libcroco_version 0.6.8 %define eds_version 3.17.2 %define gnome_desktop_version 3.7.90 @@ -201,6 +210,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %{_mandir}/man1/%{name}.1.gz %changelog +* Wed Apr 17 2019 Adam Williamson - 3.32.0-3 +- Backport MR #463 and MR #494 to fix a couple of bugs + Resolves: #1696270 + Resolves: #1690429 + * Sat Mar 23 2019 Phil Wyett - 3.32.0-2 - Update source URL - Add gcc BuildRequires