import gnome-shell-3.32.2-14.el8
This commit is contained in:
parent
d641a9efb2
commit
2230511b0d
25
SOURCES/0001-Do-not-change-Wacom-LEDs-through-g-s-d.patch
Normal file
25
SOURCES/0001-Do-not-change-Wacom-LEDs-through-g-s-d.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From f5ddd0fc02e99597e4b8506ac35523a6fa8ac22f Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Wed, 4 Mar 2020 16:08:31 +0100
|
||||
Subject: [PATCH] Do not change Wacom LEDs through g-s-d
|
||||
|
||||
Let the wacom kernel driver sort it out by itself.
|
||||
---
|
||||
js/ui/windowManager.js | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
|
||||
index dfe1b44..b2e938c 100644
|
||||
--- a/js/ui/windowManager.js
|
||||
+++ b/js/ui/windowManager.js
|
||||
@@ -1037,7 +1037,6 @@ var WindowManager = class {
|
||||
|
||||
if (this._gsdWacomProxy) {
|
||||
this._gsdWacomProxy.SetOLEDLabelsRemote(pad.get_device_node(), labels);
|
||||
- this._gsdWacomProxy.SetGroupModeLEDRemote(pad.get_device_node(), group, mode);
|
||||
}
|
||||
});
|
||||
|
||||
--
|
||||
2.24.1
|
||||
|
58
SOURCES/0001-a11y-Change-HC-icon-theme-first.patch
Normal file
58
SOURCES/0001-a11y-Change-HC-icon-theme-first.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From a94260b4f2f72ea9328a0194b8656f1fb3e98675 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Sat, 14 Dec 2019 19:15:53 +0100
|
||||
Subject: [PATCH] a11y: Change HC icon theme first
|
||||
|
||||
There are two ways for applications to provide a high contrast icon:
|
||||
|
||||
1. install an icon into the HighContrast theme
|
||||
2. install a symbolic icon into the default hicolor theme
|
||||
|
||||
The latter is preferred nowadays, and implemented in the high-contrast
|
||||
CSS variant by enforcing the symbolic icon style.
|
||||
|
||||
However together with the way we currently enable/disable high-contrast,
|
||||
this can lead to the following race:
|
||||
1. the GTK theme is changed from HighContrast
|
||||
2. we reload the default stylesheet
|
||||
3. the icon style changes to "regular", so we request a
|
||||
new icon from the HighContrast icon theme
|
||||
4. the icon theme is changed from HighContrast
|
||||
5. we evict existing icons from the cache
|
||||
6. we reload icons for the new icon theme; however as we
|
||||
find a pending request (from 3), we re-use it
|
||||
7. the request from 3 finishes, and we end up with a
|
||||
wrong icon in the cache
|
||||
|
||||
The simplest fix is to change the icon theme before the GTK theme: Unlike the
|
||||
theme name, the icon style is encoded in the cache key, so we won't re-use
|
||||
an old (and incorrect) request in that case.
|
||||
---
|
||||
js/ui/status/accessibility.js | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/js/ui/status/accessibility.js b/js/ui/status/accessibility.js
|
||||
index 10223ec84..90948d465 100644
|
||||
--- a/js/ui/status/accessibility.js
|
||||
+++ b/js/ui/status/accessibility.js
|
||||
@@ -154,14 +154,14 @@ class ATIndicator extends PanelMenu.Button {
|
||||
interfaceSettings.is_writable(KEY_ICON_THEME),
|
||||
enabled => {
|
||||
if (enabled) {
|
||||
- interfaceSettings.set_string(KEY_GTK_THEME, HIGH_CONTRAST_THEME);
|
||||
interfaceSettings.set_string(KEY_ICON_THEME, HIGH_CONTRAST_THEME);
|
||||
+ interfaceSettings.set_string(KEY_GTK_THEME, HIGH_CONTRAST_THEME);
|
||||
} else if(!hasHC) {
|
||||
- interfaceSettings.set_string(KEY_GTK_THEME, gtkTheme);
|
||||
interfaceSettings.set_string(KEY_ICON_THEME, iconTheme);
|
||||
+ interfaceSettings.set_string(KEY_GTK_THEME, gtkTheme);
|
||||
} else {
|
||||
- interfaceSettings.reset(KEY_GTK_THEME);
|
||||
interfaceSettings.reset(KEY_ICON_THEME);
|
||||
+ interfaceSettings.reset(KEY_GTK_THEME);
|
||||
}
|
||||
});
|
||||
return highContrast;
|
||||
--
|
||||
2.23.0
|
||||
|
@ -0,0 +1,80 @@
|
||||
From 2bb826291c420dd1b601758c7a686ac48e1086a6 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Mon, 16 Dec 2019 12:39:49 +0100
|
||||
Subject: [PATCH] padOsd: Re-query action labels after mode switches
|
||||
|
||||
Do this so the pad OSD is able to update dynamically to mode changes,
|
||||
showing immediately the new actions for the current mode(s).
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/898
|
||||
---
|
||||
js/ui/padOsd.js | 31 ++++++++++++++++++++++++++++---
|
||||
1 file changed, 28 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js
|
||||
index a4af47297..b4b3fe453 100644
|
||||
--- a/js/ui/padOsd.js
|
||||
+++ b/js/ui/padOsd.js
|
||||
@@ -555,6 +555,14 @@ var PadDiagram = GObject.registerClass({
|
||||
this.add_actor(label);
|
||||
}
|
||||
|
||||
+ updateLabels(callback) {
|
||||
+ for (let i = 0; i < this._labels.length; i++) {
|
||||
+ let [label, action, idx, dir] = this._labels[i];
|
||||
+ let str = callback(action, idx, dir);
|
||||
+ label.set_text(str);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
_applyLabel(label, action, idx, dir, str) {
|
||||
if (str != null) {
|
||||
label.set_text(str);
|
||||
@@ -758,17 +766,29 @@ var PadOsd = class {
|
||||
global.display.request_pad_osd(pad, editionMode);
|
||||
}
|
||||
|
||||
- _createLabel(type, number, dir) {
|
||||
+ _getActionText(type, number) {
|
||||
let str = global.display.get_pad_action_label(this.padDevice, type, number);
|
||||
- let label = new St.Label({ text: str ? str : _("None") });
|
||||
+ return str ? str : _("None");
|
||||
+ }
|
||||
+
|
||||
+ _createLabel(type, number, dir) {
|
||||
+ let label = new St.Label({ text: this._getActionText(type, number) });
|
||||
this._padDiagram.addLabel(label, type, number, dir);
|
||||
}
|
||||
|
||||
+ _updateActionLabels() {
|
||||
+ this._padDiagram.updateLabels(this._getActionText.bind(this));
|
||||
+ }
|
||||
+
|
||||
_onCapturedEvent(actor, event) {
|
||||
+ let isModeSwitch =
|
||||
+ (event.type() == Clutter.EventType.PAD_BUTTON_PRESS ||
|
||||
+ event.type() == Clutter.EventType.PAD_BUTTON_RELEASE) &&
|
||||
+ this.padDevice.get_mode_switch_button_group(event.get_button()) >= 0;
|
||||
+
|
||||
if (event.type() == Clutter.EventType.PAD_BUTTON_PRESS &&
|
||||
event.get_source_device() == this.padDevice) {
|
||||
this._padDiagram.activateButton(event.get_button());
|
||||
- let isModeSwitch = this.padDevice.get_mode_switch_button_group(event.get_button()) >= 0;
|
||||
|
||||
/* Buttons that switch between modes cannot be edited */
|
||||
if (this._editionMode && !isModeSwitch)
|
||||
@@ -777,6 +797,11 @@ var PadOsd = class {
|
||||
} else if (event.type() == Clutter.EventType.PAD_BUTTON_RELEASE &&
|
||||
event.get_source_device() == this.padDevice) {
|
||||
this._padDiagram.deactivateButton(event.get_button());
|
||||
+
|
||||
+ if (isModeSwitch) {
|
||||
+ this._endActionEdition();
|
||||
+ this._updateActionLabels();
|
||||
+ }
|
||||
return Clutter.EVENT_STOP;
|
||||
} else if (event.type() == Clutter.EventType.KEY_PRESS &&
|
||||
(!this._editionMode || event.get_key_symbol() == Clutter.Escape)) {
|
||||
--
|
||||
2.24.0
|
||||
|
31
SOURCES/0001-workspace-Pass-device-to-startDrag.patch
Normal file
31
SOURCES/0001-workspace-Pass-device-to-startDrag.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 9115f6e7962b97c3ee2fbef7b195b7116e62c070 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Fri, 13 Dec 2019 18:14:51 +0100
|
||||
Subject: [PATCH] workspace: Pass device to startDrag()
|
||||
|
||||
This is necessary to make DnD operations work from tablet devices on
|
||||
wayland, as it's not the same onscreen pointer sprite than mice. Fixes
|
||||
window DnD in the overview on tablet devices, no longer having them stick
|
||||
to the wrong pointer.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/897
|
||||
---
|
||||
js/ui/workspace.js | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
|
||||
index 1e9bedc28..d470f7f40 100644
|
||||
--- a/js/ui/workspace.js
|
||||
+++ b/js/ui/workspace.js
|
||||
@@ -431,7 +431,7 @@ var WindowClone = GObject.registerClass({
|
||||
return;
|
||||
let [x, y] = action.get_coords();
|
||||
action.release();
|
||||
- this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
|
||||
+ this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence, event.get_device());
|
||||
});
|
||||
} else {
|
||||
this.emit('show-chrome');
|
||||
--
|
||||
2.23.0
|
||||
|
421
SOURCES/fix-app-view-leaks.patch
Normal file
421
SOURCES/fix-app-view-leaks.patch
Normal file
@ -0,0 +1,421 @@
|
||||
From a518c9f57e5fe9c6b5ece5c6cb0534a83f0b2f2d Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 15 Jul 2019 13:52:58 -0400
|
||||
Subject: [PATCH 1/8] appDisplay: Don't leak duplicate items in AppView
|
||||
|
||||
If an icon already exists in an app view with the same id, the
|
||||
duplicate is not added on a call to addItem. Unfortunately,
|
||||
since it's not added, the icon actor gets orphaned and leaked.
|
||||
|
||||
This commit address the problem by introducing a new hasItem
|
||||
method and disallowing callers to call addItem with a duplicate
|
||||
in the first place.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 15 ++++++++++++---
|
||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index a07db6573..fa22f47e0 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -143,10 +143,14 @@ class BaseAppView {
|
||||
return this._allItems;
|
||||
}
|
||||
|
||||
+ hasItem(id) {
|
||||
+ return this._items[id] !== undefined;
|
||||
+ }
|
||||
+
|
||||
addItem(icon) {
|
||||
let id = icon.id;
|
||||
- if (this._items[id] !== undefined)
|
||||
- return;
|
||||
+ if (this.hasItem(id))
|
||||
+ throw new Error(`icon with id ${id} already added to view`)
|
||||
|
||||
this._allItems.push(icon);
|
||||
this._items[id] = icon;
|
||||
@@ -386,6 +390,8 @@ var AllView = class AllView extends BaseAppView {
|
||||
|
||||
let folders = this._folderSettings.get_strv('folder-children');
|
||||
folders.forEach(id => {
|
||||
+ if (this.hasItem(id))
|
||||
+ return;
|
||||
let path = this._folderSettings.path + 'folders/' + id + '/';
|
||||
let icon = new FolderIcon(id, path, this);
|
||||
icon.connect('name-changed', this._itemNameChanged.bind(this));
|
||||
@@ -1165,7 +1171,10 @@ var FolderIcon = class FolderIcon {
|
||||
let excludedApps = this._folder.get_strv('excluded-apps');
|
||||
let appSys = Shell.AppSystem.get_default();
|
||||
let addAppId = appId => {
|
||||
- if (excludedApps.indexOf(appId) >= 0)
|
||||
+ if (this.view.hasItem(appId))
|
||||
+ return;
|
||||
+
|
||||
+ if (excludedApps.includes(appId))
|
||||
return;
|
||||
|
||||
let app = appSys.lookup_app(appId);
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From 2b6aa9aed98c4854c2ad015879ddcb8d2bf91e9e Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 22 Jul 2019 11:06:30 -0400
|
||||
Subject: [PATCH 2/8] iconGrid: Clear meta_later callback on destruction
|
||||
|
||||
The IconGrid code sometimes sets up a callback to be invoked
|
||||
later right before being destroyed.
|
||||
|
||||
This commit adds a destroy handler to cancel the callback.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/iconGrid.js | 16 ++++++++++++++--
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
|
||||
index d51a443e8..1f05e67f3 100644
|
||||
--- a/js/ui/iconGrid.js
|
||||
+++ b/js/ui/iconGrid.js
|
||||
@@ -210,6 +210,8 @@ var IconGrid = GObject.registerClass({
|
||||
this.rightPadding = 0;
|
||||
this.leftPadding = 0;
|
||||
|
||||
+ this._updateIconSizesLaterId = 0;
|
||||
+
|
||||
this._items = [];
|
||||
this._clonesAnimating = [];
|
||||
// Pulled from CSS, but hardcode some defaults here
|
||||
@@ -227,6 +229,14 @@ var IconGrid = GObject.registerClass({
|
||||
|
||||
this.connect('actor-added', this._childAdded.bind(this));
|
||||
this.connect('actor-removed', this._childRemoved.bind(this));
|
||||
+ this.connect('destroy', this._onDestroy.bind(this));
|
||||
+ }
|
||||
+
|
||||
+ _onDestroy() {
|
||||
+ if (this._updateIconSizesLaterId) {
|
||||
+ Meta.later_remove (this._updateIconSizesLaterId);
|
||||
+ this._updateIconSizesLaterId = 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
_keyFocusIn(actor) {
|
||||
@@ -757,12 +767,14 @@ var IconGrid = GObject.registerClass({
|
||||
|
||||
this._updateSpacingForSize(availWidth, availHeight);
|
||||
}
|
||||
- Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
|
||||
- this._updateIconSizes.bind(this));
|
||||
+ if (!this._updateIconSizesLaterId)
|
||||
+ this._updateIconSizesLaterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
|
||||
+ this._updateIconSizes.bind(this));
|
||||
}
|
||||
|
||||
// Note that this is ICON_SIZE as used by BaseIcon, not elsewhere in IconGrid; it's a bit messed up
|
||||
_updateIconSizes() {
|
||||
+ this._updateIconSizesLaterId = 0;
|
||||
let scale = Math.min(this._fixedHItemSize, this._fixedVItemSize) / Math.max(this._hItemSize, this._vItemSize);
|
||||
let newIconSize = Math.floor(ICON_SIZE * scale);
|
||||
for (let i in this._items) {
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From 14a2650548a5104d6a3ec7a1174a23264d79030a Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 22 Jul 2019 11:02:10 -0400
|
||||
Subject: [PATCH 3/8] appDisplay: Add AppFolderPopup destroy handler
|
||||
|
||||
At the moment AppFolderPopup calls popdown on destruction,
|
||||
which leads to open-state-changed getting emitted after
|
||||
the actor associated with the popup is destroyed.
|
||||
|
||||
This commit handles ungrabbing and closing from an
|
||||
actor destroy handler to side-step the open-state-changed
|
||||
signal.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index fa22f47e0..b75d095d5 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -1329,6 +1329,15 @@ var AppFolderPopup = class AppFolderPopup {
|
||||
});
|
||||
this._grabHelper.addActor(Main.layoutManager.overviewGroup);
|
||||
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
||||
+ this.actor.connect('destroy', this._onDestroy.bind(this));
|
||||
+ }
|
||||
+
|
||||
+ _onDestroy() {
|
||||
+ if (this._isOpen) {
|
||||
+ this._isOpen = false;
|
||||
+ this._grabHelper.ungrab({ actor: this.actor });
|
||||
+ this._grabHelper = null;
|
||||
+ }
|
||||
}
|
||||
|
||||
_onKeyPress(actor, event) {
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From c9fcb2d23141694ffa2182df20ba75687b01dacc Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 10:06:38 -0400
|
||||
Subject: [PATCH 4/8] appDisplay: Clear AllView reference to current popup when
|
||||
destroyed
|
||||
|
||||
AllView contains a reference to the current popup that lingers after
|
||||
the popup is destroyed.
|
||||
|
||||
This commit fixes that, by explicitly nullifying when appropriate.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 18 +++++++++++++++++-
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index b75d095d5..dabf63bfd 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -300,6 +300,7 @@ var AllView = class AllView extends BaseAppView {
|
||||
this._eventBlocker.add_action(this._clickAction);
|
||||
|
||||
this._displayingPopup = false;
|
||||
+ this._currentPopupDestroyId = 0;
|
||||
|
||||
this._availWidth = 0;
|
||||
this._availHeight = 0;
|
||||
@@ -589,7 +590,22 @@ var AllView = class AllView extends BaseAppView {
|
||||
this._stack.add_actor(popup.actor);
|
||||
popup.connect('open-state-changed', (popup, isOpen) => {
|
||||
this._eventBlocker.reactive = isOpen;
|
||||
- this._currentPopup = isOpen ? popup : null;
|
||||
+
|
||||
+ if (this._currentPopup) {
|
||||
+ this._currentPopup.actor.disconnect(this._currentPopupDestroyId);
|
||||
+ this._currentPopupDestroyId = 0;
|
||||
+ }
|
||||
+
|
||||
+ this._currentPopup = null;
|
||||
+
|
||||
+ if (isOpen) {
|
||||
+ this._currentPopup = popup;
|
||||
+ this._currentPopupDestroyId = popup.actor.connect('destroy', () => {
|
||||
+ this._currentPopup = null;
|
||||
+ this._currentPopupDestroyId = 0;
|
||||
+ this._eventBlocker.reactive = false;
|
||||
+ });
|
||||
+ }
|
||||
this._updateIconOpacities(isOpen);
|
||||
if(!isOpen)
|
||||
this._closeSpaceForPopup();
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From b7a3fd7fa4527ba9411dcd18debe6ccf88c34dc0 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 22 Jul 2019 10:57:57 -0400
|
||||
Subject: [PATCH 5/8] appDisplay: Add destroy handler for FolderIcon
|
||||
|
||||
It is important that the FolderView of a FolderIcon always
|
||||
gets destroyed before the AppFolderPopup, since the view
|
||||
may or may not be in the popup, and the view should
|
||||
get cleaned up exactly once in either case.
|
||||
|
||||
This commit adds a destroy handler on FolderIcon to ensure
|
||||
things get taken down in the right order, and to make sure
|
||||
the view isn't leaked if it's not yet part of the popup.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index dabf63bfd..5a8f4f1bf 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -1156,6 +1156,7 @@ var FolderIcon = class FolderIcon {
|
||||
this.view.actor.vscroll.adjustment.value = 0;
|
||||
this._openSpaceForPopup();
|
||||
});
|
||||
+ this.actor.connect('destroy', this.onDestroy.bind(this));
|
||||
this.actor.connect('notify::mapped', () => {
|
||||
if (!this.actor.mapped && this._popup)
|
||||
this._popup.popdown();
|
||||
@@ -1165,6 +1166,13 @@ var FolderIcon = class FolderIcon {
|
||||
this._redisplay();
|
||||
}
|
||||
|
||||
+ onDestroy() {
|
||||
+ this.view.actor.destroy();
|
||||
+
|
||||
+ if (this._popup)
|
||||
+ this._popup.actor.destroy();
|
||||
+ }
|
||||
+
|
||||
getAppIds() {
|
||||
return this.view.getAllItems().map(item => item.id);
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From a90d7a97d21ffa596747cc8ecd0e3f500cb8a77c Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 14:49:30 -0400
|
||||
Subject: [PATCH 6/8] appDisplay: Stop watching FolderIcon parent view when
|
||||
destroyed
|
||||
|
||||
When a FolderIcon is opened, it asks the parent view to allocate
|
||||
space for it, which takes time. Eventually, the space-ready
|
||||
signal is emitted on the view and the icon can make use of the new
|
||||
space with its popup. If the icon gets destroyed in the
|
||||
interim, though, space-ready signal handler still fires.
|
||||
|
||||
This commit disconnects the signal handler so it doesn't get called
|
||||
on a destroyed icon.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index 5a8f4f1bf..062ff222c 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -1169,6 +1169,11 @@ var FolderIcon = class FolderIcon {
|
||||
onDestroy() {
|
||||
this.view.actor.destroy();
|
||||
|
||||
+ if (this._spaceReadySignalId) {
|
||||
+ this._parentView.disconnect(this._spaceReadySignalId);
|
||||
+ this._spaceReadySignalId = 0;
|
||||
+ }
|
||||
+
|
||||
if (this._popup)
|
||||
this._popup.actor.destroy();
|
||||
}
|
||||
@@ -1240,8 +1245,9 @@ var FolderIcon = class FolderIcon {
|
||||
}
|
||||
|
||||
_openSpaceForPopup() {
|
||||
- let id = this._parentView.connect('space-ready', () => {
|
||||
- this._parentView.disconnect(id);
|
||||
+ this._spaceReadySignalId = this._parentView.connect('space-ready', () => {
|
||||
+ this._parentView.disconnect(this._spaceReadySignalId);
|
||||
+ this._spaceReadySignalId = 0;
|
||||
this._popup.popup();
|
||||
this._updatePopupPosition();
|
||||
});
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From b57ab33dadf0f31c5bf2c800806593e94784050c Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 10:19:13 -0400
|
||||
Subject: [PATCH 7/8] appDisplay: Add open method to FolderIcon
|
||||
|
||||
At the moment the only way to open a folder icon is to click on it;
|
||||
there's no API to open the icon programmatically.
|
||||
|
||||
This commits adds an open method and makes the click handler use
|
||||
it.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index 062ff222c..c0c6e3663 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -1151,11 +1151,7 @@ var FolderIcon = class FolderIcon {
|
||||
|
||||
this.view = new FolderView();
|
||||
|
||||
- this.actor.connect('clicked', () => {
|
||||
- this._ensurePopup();
|
||||
- this.view.actor.vscroll.adjustment.value = 0;
|
||||
- this._openSpaceForPopup();
|
||||
- });
|
||||
+ this.actor.connect('clicked', this.open.bind(this));
|
||||
this.actor.connect('destroy', this.onDestroy.bind(this));
|
||||
this.actor.connect('notify::mapped', () => {
|
||||
if (!this.actor.mapped && this._popup)
|
||||
@@ -1178,6 +1174,12 @@ var FolderIcon = class FolderIcon {
|
||||
this._popup.actor.destroy();
|
||||
}
|
||||
|
||||
+ open() {
|
||||
+ this._ensurePopup();
|
||||
+ this.view.actor.vscroll.adjustment.value = 0;
|
||||
+ this._openSpaceForPopup();
|
||||
+ }
|
||||
+
|
||||
getAppIds() {
|
||||
return this.view.getAllItems().map(item => item.id);
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From baacab7922a56957d041aa59944c419b82e7a7e1 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 11:13:27 -0400
|
||||
Subject: [PATCH 8/8] appDisplay: Keep popup open on refresh
|
||||
|
||||
If the list of applications is refreshed we currently close
|
||||
the open app folder.
|
||||
|
||||
This commit adds logic to reopen the app folder on reload.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
|
||||
---
|
||||
js/ui/appDisplay.js | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
|
||||
index c0c6e3663..7fad02cd0 100644
|
||||
--- a/js/ui/appDisplay.js
|
||||
+++ b/js/ui/appDisplay.js
|
||||
@@ -345,6 +345,21 @@ var AllView = class AllView extends BaseAppView {
|
||||
super.removeAll();
|
||||
}
|
||||
|
||||
+ _redisplay() {
|
||||
+ let openFolderId = null;
|
||||
+ if (this._displayingPopup && this._currentPopup)
|
||||
+ openFolderId = this._currentPopup._source.id;
|
||||
+
|
||||
+ super._redisplay();
|
||||
+
|
||||
+ if (openFolderId) {
|
||||
+ let [folderToReopen] = this.folderIcons.filter(folder => folder.id == openFolderId);
|
||||
+
|
||||
+ if (folderToReopen)
|
||||
+ folderToReopen.open();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
_itemNameChanged(item) {
|
||||
// If an item's name changed, we can pluck it out of where it's
|
||||
// supposed to be and reinsert it where it's sorted.
|
||||
--
|
||||
2.23.0
|
||||
|
124
SOURCES/perf-tool-wayland.patch
Normal file
124
SOURCES/perf-tool-wayland.patch
Normal file
@ -0,0 +1,124 @@
|
||||
From 3c4c37e4d0668d748ee792f7580defdf4780624a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 5 Dec 2019 14:12:47 +0100
|
||||
Subject: [PATCH 1/2] perf-helper: Add content for custom drawing
|
||||
|
||||
Drawing windows got a lot more involved with the advent of client-side
|
||||
decorations. Instead of accounting for visible and invisible borders,
|
||||
titlebar and shadows when necessary, just add an empty child for the
|
||||
custom drawing.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/887
|
||||
---
|
||||
src/shell-perf-helper.c | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/shell-perf-helper.c b/src/shell-perf-helper.c
|
||||
index f115dcbdc..ba1754e02 100644
|
||||
--- a/src/shell-perf-helper.c
|
||||
+++ b/src/shell-perf-helper.c
|
||||
@@ -119,9 +119,9 @@ on_window_map_event (GtkWidget *window,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
-on_window_draw (GtkWidget *window,
|
||||
- cairo_t *cr,
|
||||
- WindowInfo *info)
|
||||
+on_child_draw (GtkWidget *window,
|
||||
+ cairo_t *cr,
|
||||
+ WindowInfo *info)
|
||||
{
|
||||
cairo_rectangle_int_t allocation;
|
||||
double x_offset, y_offset;
|
||||
@@ -203,6 +203,7 @@ create_window (int width,
|
||||
gboolean redraws)
|
||||
{
|
||||
WindowInfo *info;
|
||||
+ GtkWidget *child;
|
||||
|
||||
info = g_new0 (WindowInfo, 1);
|
||||
info->width = width;
|
||||
@@ -218,10 +219,13 @@ create_window (int width,
|
||||
info->pending = TRUE;
|
||||
info->start_time = -1;
|
||||
|
||||
+ child = g_object_new (GTK_TYPE_BOX, "visible", TRUE, "app-paintable", TRUE, NULL);
|
||||
+ gtk_container_add (GTK_CONTAINER (info->window), child);
|
||||
+
|
||||
gtk_widget_set_size_request (info->window, width, height);
|
||||
gtk_widget_set_app_paintable (info->window, TRUE);
|
||||
g_signal_connect (info->window, "map-event", G_CALLBACK (on_window_map_event), info);
|
||||
- g_signal_connect (info->window, "draw", G_CALLBACK (on_window_draw), info);
|
||||
+ g_signal_connect (child, "draw", G_CALLBACK (on_child_draw), info);
|
||||
gtk_widget_show (info->window);
|
||||
|
||||
if (info->redraws)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From 0185c288c3e6b82b76f2a0704aab0e2ab20b75b8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 5 Dec 2019 13:29:38 +0100
|
||||
Subject: [PATCH 2/2] perf-helper: Remove unused atoms
|
||||
|
||||
Those aren't used for anything, but make the helper dependent on X11.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/887
|
||||
---
|
||||
src/shell-perf-helper.c | 18 ------------------
|
||||
1 file changed, 18 deletions(-)
|
||||
|
||||
diff --git a/src/shell-perf-helper.c b/src/shell-perf-helper.c
|
||||
index ba1754e02..a50376e2e 100644
|
||||
--- a/src/shell-perf-helper.c
|
||||
+++ b/src/shell-perf-helper.c
|
||||
@@ -12,7 +12,6 @@
|
||||
#include <math.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
-#include <gdk/gdkx.h>
|
||||
|
||||
#define BUS_NAME "org.gnome.Shell.PerfHelper"
|
||||
|
||||
@@ -60,12 +59,6 @@ static GOptionEntry opt_entries[] =
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
-static Display *xdisplay;
|
||||
-static Window xroot;
|
||||
-static Atom atom_wm_state;
|
||||
-static Atom atom__net_wm_name;
|
||||
-static Atom atom_utf8_string;
|
||||
-
|
||||
static guint timeout_id;
|
||||
static GList *our_windows;
|
||||
static GList *wait_windows_invocations;
|
||||
@@ -350,8 +343,6 @@ on_name_lost (GDBusConnection *connection,
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
- GdkDisplay *display;
|
||||
- GdkScreen *screen;
|
||||
GOptionContext *context;
|
||||
GError *error = NULL;
|
||||
|
||||
@@ -367,15 +358,6 @@ main (int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
- display = gdk_display_get_default ();
|
||||
- screen = gdk_screen_get_default ();
|
||||
-
|
||||
- xdisplay = gdk_x11_display_get_xdisplay (display);
|
||||
- xroot = gdk_x11_window_get_xid (gdk_screen_get_root_window (screen));
|
||||
- atom_wm_state = gdk_x11_get_xatom_by_name_for_display (display, "WM_STATE");
|
||||
- atom__net_wm_name = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_NAME");
|
||||
- atom_utf8_string = gdk_x11_get_xatom_by_name_for_display (display, "UTF8_STRING");
|
||||
-
|
||||
g_bus_own_name (G_BUS_TYPE_SESSION,
|
||||
BUS_NAME,
|
||||
G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT |
|
||||
--
|
||||
2.23.0
|
||||
|
71
SOURCES/root-warning.patch
Normal file
71
SOURCES/root-warning.patch
Normal file
@ -0,0 +1,71 @@
|
||||
From 45ddeeaa317fb0ffd045600d9e4b95143c9ca8b8 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
Date: Sat, 8 Jun 2013 13:32:35 -0400
|
||||
Subject: [PATCH 1/2] main: Show a warning when running as root
|
||||
|
||||
gnome-session used to show a dialog in this case, but a
|
||||
notification is more natural nowadays. Doing it in gnome-shell
|
||||
avoids complicated synchronization between gnome-session and
|
||||
gnome-shell.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=701212
|
||||
---
|
||||
js/ui/main.js | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/js/ui/main.js b/js/ui/main.js
|
||||
index 8d1755cf1..abf8a8765 100644
|
||||
--- a/js/ui/main.js
|
||||
+++ b/js/ui/main.js
|
||||
@@ -237,6 +237,12 @@ function _initializeUI() {
|
||||
['MESSAGE_ID=' + GNOMESHELL_STARTED_MESSAGE_ID]);
|
||||
}
|
||||
|
||||
+ let credentials = new Gio.Credentials();
|
||||
+ if (credentials.get_unix_user() === 0) {
|
||||
+ notify(_('Logged in as a privileged user'),
|
||||
+ _('Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user.'));
|
||||
+ }
|
||||
+
|
||||
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
|
||||
if (perfModuleName) {
|
||||
let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT");
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
||||
From 8e82907909b6a2e5af5da3f93b087df4b7eb48b5 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
Date: Sat, 8 Jun 2013 13:33:58 -0400
|
||||
Subject: [PATCH 2/2] main: Show a warning when gdm is missing
|
||||
|
||||
If we are not running under gdm, some functionaliy (such as
|
||||
the lock screen) does not work, and we should inform the
|
||||
user about this.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=701212
|
||||
---
|
||||
js/ui/main.js | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/js/ui/main.js b/js/ui/main.js
|
||||
index abf8a8765..be49c750e 100644
|
||||
--- a/js/ui/main.js
|
||||
+++ b/js/ui/main.js
|
||||
@@ -243,6 +243,13 @@ function _initializeUI() {
|
||||
_('Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user.'));
|
||||
}
|
||||
|
||||
+ if (sessionMode.currentMode !== 'gdm' &&
|
||||
+ sessionMode.currentMode !== 'initial-setup' &&
|
||||
+ screenShield === null) {
|
||||
+ notify(_('Screen Lock disabled'),
|
||||
+ _('Screen Locking requires the GNOME display manager.'));
|
||||
+ }
|
||||
+
|
||||
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
|
||||
if (perfModuleName) {
|
||||
let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT");
|
||||
--
|
||||
2.23.0
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: gnome-shell
|
||||
Version: 3.32.2
|
||||
Release: 9%{?dist}
|
||||
Release: 14%{?dist}
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
Group: User Interface/Desktops
|
||||
@ -37,6 +37,13 @@ Patch39: horizontal-workspace-support.patch
|
||||
Patch40: 0001-animation-fix-unintentional-loop-while-polkit-dialog.patch
|
||||
Patch41: 0001-workspacesView-Work-around-spurious-allocation-chang.patch
|
||||
Patch42: 0001-layout-Make-the-hot-corner-optional.patch
|
||||
Patch43: fix-app-view-leaks.patch
|
||||
Patch44: root-warning.patch
|
||||
Patch45: 0001-workspace-Pass-device-to-startDrag.patch
|
||||
Patch46: 0001-a11y-Change-HC-icon-theme-first.patch
|
||||
Patch47: perf-tool-wayland.patch
|
||||
Patch48: 0001-padOsd-Re-query-action-labels-after-mode-switches.patch
|
||||
Patch49: 0001-Do-not-change-Wacom-LEDs-through-g-s-d.patch
|
||||
|
||||
# Backport JS invalid access warnings (#1651894, #1663171, #1642482, #1637622)
|
||||
Patch54: fix-invalid-access-warnings.patch
|
||||
@ -73,6 +80,7 @@ BuildRequires: gjs-devel >= %{gjs_version}
|
||||
BuildRequires: glib2-devel >= %{glib2_version}
|
||||
BuildRequires: gobject-introspection >= %{gobject_introspection_version}
|
||||
BuildRequires: mesa-libGL-devel
|
||||
BuildRequires: mesa-libEGL-devel
|
||||
BuildRequires: NetworkManager-libnm-devel
|
||||
BuildRequires: polkit-devel >= %{polkit_version}
|
||||
BuildRequires: startup-notification-devel
|
||||
@ -96,7 +104,7 @@ BuildRequires: pulseaudio-libs-devel
|
||||
%ifnarch s390 s390x ppc ppc64 ppc64p7
|
||||
BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version}
|
||||
%endif
|
||||
BuildRequires: control-center
|
||||
#BuildRequires: control-center
|
||||
# Bootstrap requirements
|
||||
BuildRequires: gtk-doc
|
||||
%ifnarch s390 s390x
|
||||
@ -219,6 +227,30 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
||||
%{_mandir}/man1/%{name}.1.gz
|
||||
|
||||
%changelog
|
||||
* Wed Mar 04 2020 Carlos Garnacho <cgarnach@redhat.com> - 3.32.2-14
|
||||
- Do not set Wacom LEDs through gnome-settings-daemon, rely on kernel driver
|
||||
Resolves: #1687979
|
||||
|
||||
* Mon Dec 16 2019 Carlos Garnacho <cgarnach@redhat.com> - 3.32.2-13
|
||||
- Update pad OSD on mode switching
|
||||
Resolves: #1716774
|
||||
|
||||
* Fri Dec 13 2019 Carlos Garnacho <cgarnach@redhat.com> - 3.32.2-12
|
||||
- Fix window dragging with tablets in the overview
|
||||
Resolves: #1716767
|
||||
- Fix high-contrast/symbolic race
|
||||
Resolves: #1730612
|
||||
- Make perf-tool usable on wayland
|
||||
Resolves: #1652178
|
||||
|
||||
* Mon Dec 02 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-11
|
||||
- Warn when logging in as root
|
||||
Resolves: #1746327
|
||||
|
||||
* Wed Nov 27 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-10
|
||||
- Fix leaks in app picker
|
||||
Related: #1719819
|
||||
|
||||
* Thu Aug 15 2019 Jonas Ådahl <jadahl@redhat.com> - 3.32.2-9
|
||||
- Depend on correct gsettings-desktop-schemas version
|
||||
Related: #1704355
|
||||
|
Loading…
Reference in New Issue
Block a user