Update to 43.1
This commit is contained in:
parent
fe0da4e085
commit
cedf25d3ea
1
.gitignore
vendored
1
.gitignore
vendored
@ -208,3 +208,4 @@ gnome-shell-2.31.5.tar.bz2
|
||||
/gnome-shell-43.beta.tar.xz
|
||||
/gnome-shell-43.rc.tar.xz
|
||||
/gnome-shell-43.0.tar.xz
|
||||
/gnome-shell-43.1.tar.xz
|
||||
|
37
2487.patch
37
2487.patch
@ -1,37 +0,0 @@
|
||||
From 13c9fd2a668e137b9e2569dcdedb0a25b95ae9aa Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Wed, 14 Sep 2022 20:20:14 +0200
|
||||
Subject: [PATCH] status: Use fixed sorting of input sources on empty MRU
|
||||
|
||||
When updating the MRU sources if there was no prior MRU, we want
|
||||
to go with the unmodified list of sources in visibility order.
|
||||
|
||||
However iterating over object properties happens in an undetermined
|
||||
order, so the initial MRU list ends up picking a value at random.
|
||||
|
||||
In order to prefer the sources list in the same order than they
|
||||
appear in the menu if there was no prior MRU, order the keys
|
||||
when accessing it and building the initial list of sources.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5873
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2487>
|
||||
---
|
||||
js/ui/status/keyboard.js | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index 76a42f6bd7..65b3962731 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -492,7 +492,7 @@ var InputSourceManager = class extends Signals.EventEmitter {
|
||||
|
||||
_updateMruSources() {
|
||||
let sourcesList = [];
|
||||
- for (let i in this._inputSources)
|
||||
+ for (let i of Object.keys(this._inputSources).sort((a, b) => a - b))
|
||||
sourcesList.push(this._inputSources[i]);
|
||||
|
||||
this._keyboardManager.setUserLayouts(sourcesList.map(x => x.xkbId));
|
||||
--
|
||||
GitLab
|
||||
|
68
2495.patch
68
2495.patch
@ -1,68 +0,0 @@
|
||||
From 79a45d691fb03279f501b33bfbefd933e94ec12d Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Mon, 19 Sep 2022 22:35:15 +0200
|
||||
Subject: [PATCH] status: Ignore prior single-element lists updating input
|
||||
sources MRU
|
||||
|
||||
Consider the existing input sources MRU only valid if it contained
|
||||
more than one element to pick from. Fixes the following situation
|
||||
with initial-setup sessions:
|
||||
|
||||
- Initial setup Session starts, with several input sources already
|
||||
configured ("us" between them)
|
||||
- InputSourceManager initializes, only the default "us" keymap is
|
||||
available
|
||||
- MRU list is constructed, "us" is picked
|
||||
- InputSourceManager catches up with session configuration, the
|
||||
other extra sources are added
|
||||
- MRU list is reconstructed, "us" is already the most recent
|
||||
- Session ends up with "us" picked, regardless of its position in
|
||||
the list, and no MRU existing prior to startup
|
||||
|
||||
If we consider the intermediate single-element MRU list invalid,
|
||||
it is still possible to pick the best default source between all
|
||||
the configured ones (the one that was put first in the list,
|
||||
basically), after initialization is complete.
|
||||
|
||||
But also, it is unnecessary to have if there is a single source to
|
||||
pick from. After the sources list has two elements of more, the
|
||||
MRU list will become effective and preserved during changes to
|
||||
the available sources.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5873
|
||||
---
|
||||
js/ui/status/keyboard.js | 15 +++++++++------
|
||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index 65b3962731..82706c0389 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -524,15 +524,18 @@ var InputSourceManager = class extends Signals.EventEmitter {
|
||||
}
|
||||
|
||||
let mruSources = [];
|
||||
- for (let i = 0; i < this._mruSources.length; i++) {
|
||||
- for (let j = 0; j < sourcesList.length; j++) {
|
||||
- if (this._mruSources[i].type == sourcesList[j].type &&
|
||||
- this._mruSources[i].id == sourcesList[j].id) {
|
||||
- mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
||||
- break;
|
||||
+ if (this._mruSources.length > 1) {
|
||||
+ for (let i = 0; i < this._mruSources.length; i++) {
|
||||
+ for (let j = 0; j < sourcesList.length; j++) {
|
||||
+ if (this._mruSources[i].type === sourcesList[j].type &&
|
||||
+ this._mruSources[i].id === sourcesList[j].id) {
|
||||
+ mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
this._mruSources = mruSources.concat(sourcesList);
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
168
2508.patch
168
2508.patch
@ -1,168 +0,0 @@
|
||||
From 524a5401266f8b30c2210cf147530cbb815b71ed Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Tue, 11 Oct 2022 18:23:19 +0200
|
||||
Subject: [PATCH 1/2] keyboard: Refactor code
|
||||
|
||||
Move inline anonymous function to be its own. This method
|
||||
will become asynchronous in following commits.
|
||||
---
|
||||
js/ui/keyboard.js | 54 +++++++++++++++++++++++++----------------------
|
||||
1 file changed, 29 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
|
||||
index 895691c34e..28369316e1 100644
|
||||
--- a/js/ui/keyboard.js
|
||||
+++ b/js/ui/keyboard.js
|
||||
@@ -1510,31 +1510,8 @@ var Keyboard = GObject.registerClass({
|
||||
button.setWidth(key.width);
|
||||
|
||||
if (key.action !== 'modifier') {
|
||||
- button.connect('commit', (actor, keyval, str) => {
|
||||
- if (this._modifiers.size === 0 && str !== '' &&
|
||||
- keyval && this._oskCompletionEnabled) {
|
||||
- Main.inputMethod.handleVirtualKey(keyval);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (str === '' || !Main.inputMethod.currentFocus ||
|
||||
- (keyval && this._oskCompletionEnabled) ||
|
||||
- this._modifiers.size > 0 ||
|
||||
- !this._keyboardController.commitString(str, true)) {
|
||||
- if (keyval !== 0) {
|
||||
- this._forwardModifiers(this._modifiers, Clutter.EventType.KEY_PRESS);
|
||||
- this._keyboardController.keyvalPress(keyval);
|
||||
- GLib.timeout_add(GLib.PRIORITY_DEFAULT, KEY_RELEASE_TIMEOUT, () => {
|
||||
- this._keyboardController.keyvalRelease(keyval);
|
||||
- this._forwardModifiers(this._modifiers, Clutter.EventType.KEY_RELEASE);
|
||||
- this._disableAllModifiers();
|
||||
- return GLib.SOURCE_REMOVE;
|
||||
- });
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (!this._latched)
|
||||
- this._setActiveLayer(0);
|
||||
+ button.connect('commit', (_actor, keyval, str) => {
|
||||
+ this._commitAction(keyval, str);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1592,6 +1569,33 @@ var Keyboard = GObject.registerClass({
|
||||
}
|
||||
}
|
||||
|
||||
+ _commitAction(keyval, str) {
|
||||
+ if (this._modifiers.size === 0 && str !== '' &&
|
||||
+ keyval && this._oskCompletionEnabled) {
|
||||
+ Main.inputMethod.handleVirtualKey(keyval);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (str === '' || !Main.inputMethod.currentFocus ||
|
||||
+ (keyval && this._oskCompletionEnabled) ||
|
||||
+ this._modifiers.size > 0 ||
|
||||
+ !this._keyboardController.commitString(str, true)) {
|
||||
+ if (keyval !== 0) {
|
||||
+ this._forwardModifiers(this._modifiers, Clutter.EventType.KEY_PRESS);
|
||||
+ this._keyboardController.keyvalPress(keyval);
|
||||
+ GLib.timeout_add(GLib.PRIORITY_DEFAULT, KEY_RELEASE_TIMEOUT, () => {
|
||||
+ this._keyboardController.keyvalRelease(keyval);
|
||||
+ this._forwardModifiers(this._modifiers, Clutter.EventType.KEY_RELEASE);
|
||||
+ this._disableAllModifiers();
|
||||
+ return GLib.SOURCE_REMOVE;
|
||||
+ });
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!this._latched)
|
||||
+ this._setActiveLayer(0);
|
||||
+ }
|
||||
+
|
||||
_previousWordPosition(text, cursor) {
|
||||
/* Skip word prior to cursor */
|
||||
let pos = Math.max(0, text.slice(0, cursor).search(/\s+\S+\s*$/));
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 6e997c993e8c392b88cb97644ad604be6dd8028a Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Tue, 11 Oct 2022 18:24:15 +0200
|
||||
Subject: [PATCH 2/2] inputMethod: Check return value when letting IM handle
|
||||
virtual keys
|
||||
|
||||
When propagating keys from the OSK, we usually feed these directly to
|
||||
the IBusInputContext and let the IM handle the effects of this virtual
|
||||
key event (which may also include feeding a key event back to us).
|
||||
|
||||
But these functions may also return a FALSE value if the key was "let
|
||||
through" by the IM, which means the ball is in our yard again, and
|
||||
we are responsible of letting this event get to its destination.
|
||||
|
||||
If that happens, just fall through, so the string is committed to
|
||||
the client as an UTF-8 string, or propagated through keyboard events.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5930
|
||||
---
|
||||
js/misc/inputMethod.js | 19 ++++++++++++++-----
|
||||
js/ui/keyboard.js | 6 +++---
|
||||
2 files changed, 17 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
|
||||
index 7bf6646d80..906fe1fc93 100644
|
||||
--- a/js/misc/inputMethod.js
|
||||
+++ b/js/misc/inputMethod.js
|
||||
@@ -7,6 +7,8 @@ const Main = imports.ui.main;
|
||||
|
||||
Gio._promisify(IBus.Bus.prototype,
|
||||
'create_input_context_async', 'create_input_context_async_finish');
|
||||
+Gio._promisify(IBus.InputContext.prototype,
|
||||
+ 'process_key_event_async', 'process_key_event_async_finish');
|
||||
|
||||
var HIDE_PANEL_TIME = 50;
|
||||
|
||||
@@ -329,10 +331,17 @@ var InputMethod = GObject.registerClass({
|
||||
return this._preeditVisible && this._preeditStr !== '' && this._preeditStr !== null;
|
||||
}
|
||||
|
||||
- handleVirtualKey(keyval) {
|
||||
- this._context.process_key_event_async(
|
||||
- keyval, 0, 0, -1, null, null);
|
||||
- this._context.process_key_event_async(
|
||||
- keyval, 0, IBus.ModifierType.RELEASE_MASK, -1, null, null);
|
||||
+ async handleVirtualKey(keyval) {
|
||||
+ try {
|
||||
+ if (!await this._context.process_key_event_async(
|
||||
+ keyval, 0, 0, -1, null))
|
||||
+ return false;
|
||||
+
|
||||
+ await this._context.process_key_event_async(
|
||||
+ keyval, 0, IBus.ModifierType.RELEASE_MASK, -1, null);
|
||||
+ return true;
|
||||
+ } catch (e) {
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
});
|
||||
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
|
||||
index 28369316e1..3241571de7 100644
|
||||
--- a/js/ui/keyboard.js
|
||||
+++ b/js/ui/keyboard.js
|
||||
@@ -1569,11 +1569,11 @@ var Keyboard = GObject.registerClass({
|
||||
}
|
||||
}
|
||||
|
||||
- _commitAction(keyval, str) {
|
||||
+ async _commitAction(keyval, str) {
|
||||
if (this._modifiers.size === 0 && str !== '' &&
|
||||
keyval && this._oskCompletionEnabled) {
|
||||
- Main.inputMethod.handleVirtualKey(keyval);
|
||||
- return;
|
||||
+ if (await Main.inputMethod.handleVirtualKey(keyval))
|
||||
+ return;
|
||||
}
|
||||
|
||||
if (str === '' || !Main.inputMethod.currentFocus ||
|
||||
--
|
||||
GitLab
|
||||
|
@ -1,25 +1,14 @@
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
|
||||
Name: gnome-shell
|
||||
Version: 43.0
|
||||
Release: 3%{?dist}
|
||||
Version: 43.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
License: GPLv2+
|
||||
URL: https://wiki.gnome.org/Projects/GnomeShell
|
||||
Source0: https://download.gnome.org/sources/gnome-shell/43/%{name}-%{tarball_version}.tar.xz
|
||||
|
||||
# Backported from upstream
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2487
|
||||
Patch0: 2487.patch
|
||||
# Backported from upstream
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2495
|
||||
Patch1: 2495.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2131837
|
||||
# Backported from upstream
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2508
|
||||
Patch2: 2508.patch
|
||||
|
||||
# Replace Epiphany with Firefox in the default favourite apps list
|
||||
Patch10001: gnome-shell-favourite-apps-firefox.patch
|
||||
|
||||
@ -242,6 +231,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
||||
%{_mandir}/man1/gnome-shell.1*
|
||||
|
||||
%changelog
|
||||
* Fri Nov 04 2022 Florian Müllner <fmuellner@redhat.com> - 43.1-1
|
||||
- Update to 43.1
|
||||
|
||||
* Tue Oct 11 2022 Adam Williamson <awilliam@redhat.com> - 43.0-3
|
||||
- Backport MR2508 to fix OSK space entry (#2131837)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (gnome-shell-43.0.tar.xz) = 6f3609c8bac923f052d51fce44a448dba997cac543331b56229f46b56e8770de9370deb7759d4bf0e7385794232715b9b34e41f90dd1da30e88d5cfbf3f095eb
|
||||
SHA512 (gnome-shell-43.1.tar.xz) = 1e41f0ce38b285aca1f9189fdb50e4d409232554da73e9c08e21b5888d35bad3e2bf4a47e93fdf20798ea6f63864223088b78cab7c63fc1105cd955701ea2e81
|
||||
|
Loading…
Reference in New Issue
Block a user