Backport MR #463 and MR #494 to fix a couple of bugs

Resolves: #1696270
Resolves: #1690429
This commit is contained in:
Adam Williamson 2019-04-17 08:52:10 -07:00
parent 8d83102e36
commit 85c443ffcc
3 changed files with 115 additions and 1 deletions

View File

@ -0,0 +1,30 @@
From f717defaef643ed5acf17dd75e0992cee904f575 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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

View File

@ -0,0 +1,70 @@
From d4aeb9e5b94ba6bf9fe6f5c1652934c936f88fa2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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

View File

@ -1,6 +1,6 @@
Name: gnome-shell Name: gnome-shell
Version: 3.32.0 Version: 3.32.0
Release: 2%{?dist} Release: 3%{?dist}
Summary: Window management and application launching for GNOME Summary: Window management and application launching for GNOME
License: GPLv2+ License: GPLv2+
@ -17,6 +17,15 @@ Patch1: gnome-shell-favourite-apps-firefox.patch
Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.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 libcroco_version 0.6.8
%define eds_version 3.17.2 %define eds_version 3.17.2
%define gnome_desktop_version 3.7.90 %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 %{_mandir}/man1/%{name}.1.gz
%changelog %changelog
* Wed Apr 17 2019 Adam Williamson <awilliam@redhat.com> - 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 <philwyett@kathenas.org> - 3.32.0-2 * Sat Mar 23 2019 Phil Wyett <philwyett@kathenas.org> - 3.32.0-2
- Update source URL - Update source URL
- Add gcc BuildRequires - Add gcc BuildRequires