import gnome-shell-3.32.2-13.el8
This commit is contained in:
parent
e66f5a7305
commit
1671fe97eb
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,40 @@
|
|||||||
|
From 34e6bbeebef37ae688ca0527bde03fa26b143bb7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
|
Date: Thu, 27 Jun 2019 14:27:34 -0400
|
||||||
|
Subject: [PATCH] animation: fix unintentional loop while polkit dialog is
|
||||||
|
active
|
||||||
|
|
||||||
|
The polkit password dialog has a spinner that gets displayed
|
||||||
|
while the users password is being verified.
|
||||||
|
|
||||||
|
Unfortunately, the spinner stop method unintentionally calls
|
||||||
|
back into itself after the stop fade out animation is complete.
|
||||||
|
The stop method is called at startup, so the looping begins as
|
||||||
|
soon as the dialog is visible and continues until the dialog is
|
||||||
|
dismissed.
|
||||||
|
|
||||||
|
This commit fixes the loop by having the stop method cease
|
||||||
|
calling itself, and instead having it call the stop method on the
|
||||||
|
superclass.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/602
|
||||||
|
---
|
||||||
|
js/ui/animation.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/animation.js b/js/ui/animation.js
|
||||||
|
index c21b22565..58d7f4018 100644
|
||||||
|
--- a/js/ui/animation.js
|
||||||
|
+++ b/js/ui/animation.js
|
||||||
|
@@ -162,7 +162,7 @@ var Spinner = class extends AnimatedIcon {
|
||||||
|
time: SPINNER_ANIMATION_TIME,
|
||||||
|
transition: 'linear',
|
||||||
|
onComplete: () => {
|
||||||
|
- this.stop(false);
|
||||||
|
+ super.stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
56
SOURCES/0001-layout-Make-the-hot-corner-optional.patch
Normal file
56
SOURCES/0001-layout-Make-the-hot-corner-optional.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 35cbad572120125d3b823f37d2100b2beee4c1d8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Thu, 8 Jun 2017 17:07:56 +0200
|
||||||
|
Subject: [PATCH] layout: Make the hot corner optional
|
||||||
|
|
||||||
|
Whether people love or hate the hot corner depends in large extents
|
||||||
|
on hardware sensitivity and habits, which is hard to get right
|
||||||
|
universally. So bite the bullet and support an option to enable or
|
||||||
|
disable hot corners ...
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=688320
|
||||||
|
---
|
||||||
|
js/ui/layout.js | 14 +++++++++++++-
|
||||||
|
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/layout.js b/js/ui/layout.js
|
||||||
|
index 2b3bb7442..beb4c0a5d 100644
|
||||||
|
--- a/js/ui/layout.js
|
||||||
|
+++ b/js/ui/layout.js
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
|
||||||
|
-const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi;
|
||||||
|
+const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
|
||||||
|
const Signals = imports.signals;
|
||||||
|
|
||||||
|
const Background = imports.ui.background;
|
||||||
|
@@ -267,6 +267,13 @@ var LayoutManager = GObject.registerClass({
|
||||||
|
this._backgroundGroup.lower_bottom();
|
||||||
|
this._bgManagers = [];
|
||||||
|
|
||||||
|
+ this._interfaceSettings = new Gio.Settings({
|
||||||
|
+ schema_id: 'org.gnome.desktop.interface'
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
+ this._interfaceSettings.connect('changed::enable-hot-corners',
|
||||||
|
+ this._updateHotCorners.bind(this));
|
||||||
|
+
|
||||||
|
// Need to update struts on new workspaces when they are added
|
||||||
|
let workspaceManager = global.workspace_manager;
|
||||||
|
workspaceManager.connect('notify::n-workspaces',
|
||||||
|
@@ -358,6 +365,11 @@ var LayoutManager = GObject.registerClass({
|
||||||
|
});
|
||||||
|
this.hotCorners = [];
|
||||||
|
|
||||||
|
+ if (!this._interfaceSettings.get_boolean('enable-hot-corners')) {
|
||||||
|
+ this.emit('hot-corners-changed');
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
let size = this.panelBox.height;
|
||||||
|
|
||||||
|
// build new hot corners
|
||||||
|
--
|
||||||
|
2.21.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
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
From b69b404118852f7955f60d1814f5e19ad61ce449 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 12 Jul 2019 03:26:51 +0000
|
||||||
|
Subject: [PATCH] workspacesView: Work around spurious allocation changes
|
||||||
|
|
||||||
|
For some reason, people are still seeing those after commit d5ebd8c8.
|
||||||
|
While this is something we really should figure out, we can work around
|
||||||
|
the issue by keeping the view actors hidden until the update is complete.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/issues/1065
|
||||||
|
---
|
||||||
|
js/ui/workspacesView.js | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
|
||||||
|
index 069937d5a..e302296a6 100644
|
||||||
|
--- a/js/ui/workspacesView.js
|
||||||
|
+++ b/js/ui/workspacesView.js
|
||||||
|
@@ -666,10 +666,15 @@ var WorkspacesDisplay = class {
|
||||||
|
this._scrollValueChanged.bind(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // HACK: Avoid spurious allocation changes while updating views
|
||||||
|
+ view.actor.hide();
|
||||||
|
+
|
||||||
|
this._workspacesViews.push(view);
|
||||||
|
Main.layoutManager.overviewGroup.add_actor(view.actor);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ this._workspacesViews.forEach(v => v.actor.show());
|
||||||
|
+
|
||||||
|
this._updateWorkspacesFullGeometry();
|
||||||
|
this._updateWorkspacesActualGeometry();
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.21.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
|
Name: gnome-shell
|
||||||
Version: 3.32.2
|
Version: 3.32.2
|
||||||
Release: 4%{?dist}
|
Release: 13%{?dist}
|
||||||
Summary: Window management and application launching for GNOME
|
Summary: Window management and application launching for GNOME
|
||||||
|
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
@ -34,6 +34,15 @@ Patch34: 0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch
|
|||||||
Patch35: 0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch
|
Patch35: 0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch
|
||||||
Patch38: 0001-appDisplay-Show-full-app-name-on-hover.patch
|
Patch38: 0001-appDisplay-Show-full-app-name-on-hover.patch
|
||||||
Patch39: horizontal-workspace-support.patch
|
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
|
||||||
|
|
||||||
# Backport JS invalid access warnings (#1651894, #1663171, #1642482, #1637622)
|
# Backport JS invalid access warnings (#1651894, #1663171, #1642482, #1637622)
|
||||||
Patch54: fix-invalid-access-warnings.patch
|
Patch54: fix-invalid-access-warnings.patch
|
||||||
@ -53,7 +62,7 @@ Patch10004: 0004-background-refresh-background-on-gl-video-memory-pur.patch
|
|||||||
%define gtk3_version 3.15.0
|
%define gtk3_version 3.15.0
|
||||||
%define mutter_version 3.32
|
%define mutter_version 3.32
|
||||||
%define polkit_version 0.100
|
%define polkit_version 0.100
|
||||||
%define gsettings_desktop_schemas_version 3.27.90
|
%define gsettings_desktop_schemas_version 3.32.0-3
|
||||||
%define ibus_version 1.5.2
|
%define ibus_version 1.5.2
|
||||||
%define gnome_bluetooth_version 1:3.9.0
|
%define gnome_bluetooth_version 1:3.9.0
|
||||||
%define gstreamer_version 1.4.5
|
%define gstreamer_version 1.4.5
|
||||||
@ -70,6 +79,7 @@ BuildRequires: gjs-devel >= %{gjs_version}
|
|||||||
BuildRequires: glib2-devel >= %{glib2_version}
|
BuildRequires: glib2-devel >= %{glib2_version}
|
||||||
BuildRequires: gobject-introspection >= %{gobject_introspection_version}
|
BuildRequires: gobject-introspection >= %{gobject_introspection_version}
|
||||||
BuildRequires: mesa-libGL-devel
|
BuildRequires: mesa-libGL-devel
|
||||||
|
BuildRequires: mesa-libEGL-devel
|
||||||
BuildRequires: NetworkManager-libnm-devel
|
BuildRequires: NetworkManager-libnm-devel
|
||||||
BuildRequires: polkit-devel >= %{polkit_version}
|
BuildRequires: polkit-devel >= %{polkit_version}
|
||||||
BuildRequires: startup-notification-devel
|
BuildRequires: startup-notification-devel
|
||||||
@ -93,7 +103,7 @@ BuildRequires: pulseaudio-libs-devel
|
|||||||
%ifnarch s390 s390x ppc ppc64 ppc64p7
|
%ifnarch s390 s390x ppc ppc64 ppc64p7
|
||||||
BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version}
|
BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version}
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: control-center
|
#BuildRequires: control-center
|
||||||
# Bootstrap requirements
|
# Bootstrap requirements
|
||||||
BuildRequires: gtk-doc
|
BuildRequires: gtk-doc
|
||||||
%ifnarch s390 s390x
|
%ifnarch s390 s390x
|
||||||
@ -216,6 +226,46 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
|||||||
%{_mandir}/man1/%{name}.1.gz
|
%{_mandir}/man1/%{name}.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
||||||
|
|
||||||
|
* Wed Aug 14 2019 Jonas Ådahl <jadahl@redhat.com> - 3.32.2-8
|
||||||
|
- Depend on required gsettings-desktop-schemas version
|
||||||
|
Related: #1704355
|
||||||
|
|
||||||
|
* Tue Jul 23 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-7
|
||||||
|
- Make the hot corner optional
|
||||||
|
Resolves: #1704355
|
||||||
|
|
||||||
|
* Fri Jul 12 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-6
|
||||||
|
- Fix warnings triggered by spurious allocations
|
||||||
|
Resolves: #1719279
|
||||||
|
|
||||||
|
* Wed Jul 10 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-5
|
||||||
|
- Fix infinite loop in spinner animation
|
||||||
|
Resolves: #1725555
|
||||||
|
|
||||||
* Tue Jun 18 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-4
|
* Tue Jun 18 2019 Florian Müllner <fmuellner@redhat.com> - 3.32.2-4
|
||||||
- Adjust more shortcut handlers for horizontal workspaces
|
- Adjust more shortcut handlers for horizontal workspaces
|
||||||
Related: #1704360
|
Related: #1704360
|
||||||
|
Loading…
Reference in New Issue
Block a user