parent
811a58913d
commit
4a46ac2e64
29
0001-inputMethod-Equate-empty-preedit-string-to-null.patch
Normal file
29
0001-inputMethod-Equate-empty-preedit-string-to-null.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 286cfdc6d48dc4315df54d29d7d16b5198d92a56 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Fri, 29 Oct 2021 16:41:55 +0200
|
||||
Subject: [PATCH 1/3] inputMethod: Equate empty preedit string to null
|
||||
|
||||
If we get '' from the IM as the preedit string, it is pretty safe
|
||||
to handle it as "no preedit" altogether.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
|
||||
---
|
||||
js/misc/inputMethod.js | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
|
||||
index 1f9eaee7a..7de7540d3 100644
|
||||
--- a/js/misc/inputMethod.js
|
||||
+++ b/js/misc/inputMethod.js
|
||||
@@ -111,6 +111,8 @@ class InputMethod extends Clutter.InputMethod {
|
||||
return;
|
||||
|
||||
let preedit = text.get_text();
|
||||
+ if (preedit === '')
|
||||
+ preedit = null;
|
||||
|
||||
if (visible)
|
||||
this.set_preedit_text(preedit, pos, mode);
|
||||
--
|
||||
2.33.1
|
||||
|
@ -0,0 +1,38 @@
|
||||
From 047691b0d3471630ec80e32f371291dd2ef02419 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Fri, 29 Oct 2021 16:43:15 +0200
|
||||
Subject: [PATCH 2/3] inputMethod: Do not communicate preedit text change on
|
||||
reset
|
||||
|
||||
This is now done in the ClutterInputFocus for us, since
|
||||
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1940. There
|
||||
is no need to duplicate this call, and it happens to cause undesired
|
||||
scrolling to content in some cases when this reset happens during
|
||||
a change in the IM focused client state.
|
||||
|
||||
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4647
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
|
||||
---
|
||||
js/misc/inputMethod.js | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
|
||||
index 7de7540d3..71dff84f5 100644
|
||||
--- a/js/misc/inputMethod.js
|
||||
+++ b/js/misc/inputMethod.js
|
||||
@@ -186,11 +186,7 @@ class InputMethod extends Clutter.InputMethod {
|
||||
this._emitRequestSurrounding();
|
||||
}
|
||||
|
||||
- if (this._preeditStr !== null) {
|
||||
- // Unset any preedit text
|
||||
- this.set_preedit_text(null, 0, Clutter.PreeditResetMode.CLEAR);
|
||||
- this._preeditStr = null;
|
||||
- }
|
||||
+ this._preeditStr = null;
|
||||
}
|
||||
|
||||
vfunc_set_cursor_location(rect) {
|
||||
--
|
||||
2.33.1
|
||||
|
@ -0,0 +1,30 @@
|
||||
From 01775609525b12de752a2f7ebac88baee9b041d3 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Fri, 29 Oct 2021 16:46:18 +0200
|
||||
Subject: [PATCH 3/3] inputMethod: Do not reset invisible preedit on focus_out
|
||||
|
||||
If the preedit is in invisible state, the last preedit string that
|
||||
was sent around is already null, so there is no need to clear the preedit
|
||||
in that case.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
|
||||
---
|
||||
js/misc/inputMethod.js | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
|
||||
index 71dff84f5..8c3cd61ae 100644
|
||||
--- a/js/misc/inputMethod.js
|
||||
+++ b/js/misc/inputMethod.js
|
||||
@@ -167,7 +167,7 @@ class InputMethod extends Clutter.InputMethod {
|
||||
if (this._context)
|
||||
this._context.focus_out();
|
||||
|
||||
- if (this._preeditStr) {
|
||||
+ if (this._preeditStr && this._preeditVisible) {
|
||||
// Unset any preedit text
|
||||
this.set_preedit_text(null, 0, this._preeditCommitMode);
|
||||
this._preeditStr = null;
|
||||
--
|
||||
2.33.1
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: gnome-shell
|
||||
Version: 41.0
|
||||
Release: 7%{?dist}
|
||||
Release: 8%{?dist}
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
License: GPLv2+
|
||||
@ -36,6 +36,15 @@ Patch60002: 0002-unlockDialog-Properly-reset-auth-prompt-when-showing.patch
|
||||
# Work around crashy tear down
|
||||
Patch60003: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch
|
||||
|
||||
# More fixes for cursor bouncing around in text editors
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4647
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2017192
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011
|
||||
Patch70001: 0001-inputMethod-Equate-empty-preedit-string-to-null.patch
|
||||
Patch70002: 0002-inputMethod-Do-not-communicate-preedit-text-change-o.patch
|
||||
Patch70003: 0003-inputMethod-Do-not-reset-invisible-preedit-on-focus_.patch
|
||||
|
||||
|
||||
%define eds_version 3.33.1
|
||||
%define gnome_desktop_version 3.35.91
|
||||
%define glib2_version 2.56.0
|
||||
@ -249,6 +258,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
||||
%{_mandir}/man1/gnome-shell.1*
|
||||
|
||||
%changelog
|
||||
* Fri Oct 29 2021 Adam Williamson <awilliam@redhat.com> - 41.0-8
|
||||
- Backport MR #2011 to further fix unexpected scrolling (#2017192)
|
||||
|
||||
* Wed Oct 27 2021 Ray Strode <rstrode@redhat.com> - 41.0-7
|
||||
- Use correct patch for fixing unlock screen confusion
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user