Use the upstream fix for #908120

This commit is contained in:
Simon McVittie
2018-09-13 08:30:17 +01:00
parent 898f2e1fc2
commit c1c2252818
5 changed files with 75 additions and 61 deletions

9
debian/changelog vendored
View File

@ -1,3 +1,12 @@
gtk+3.0 (3.24.0-4) UNRELEASED; urgency=medium
* d/p/imwayland-Fix-clearing-of-preedit-text.patch,
d/p/imwayland-Fix-clearing-of-preedit-text-in-webkitgtk.patch:
Use the upstream fix for #908120
- d/p/Revert-imwayland-clear-preedit-on-focus-out.patch: Remove
-- Simon McVittie <smcv@debian.org> Thu, 13 Sep 2018 08:29:08 +0100
gtk+3.0 (3.24.0-3) unstable; urgency=medium
* Cherry-pick 3c7d5e7 to fix a critical on gtk_application_shutdown when not

View File

@ -1,60 +0,0 @@
From: Simon McVittie <smcv@debian.org>
Date: Sun, 9 Sep 2018 23:06:12 +0100
Subject: Revert "imwayland: clear preedit on focus out"
This appears to cause the gnome-terminal cursor to disappear on focus
changes. Revert it for now as a workaround.
This reverts commit 49b17e6c1e853e81e2087a989524d8e0cad08d05.
Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1316
Bug-Debian: https://bugs.debian.org/908120
Forwarded: no
---
modules/input/imwayland.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/modules/input/imwayland.c b/modules/input/imwayland.c
index 11d09d2..3589c4c 100644
--- a/modules/input/imwayland.c
+++ b/modules/input/imwayland.c
@@ -135,7 +135,18 @@ static void
text_input_leave (void *data,
struct zwp_text_input_v3 *text_input,
struct wl_surface *surface)
-{}
+{
+ /*
+ GtkIMContextWayland *context;
+
+ if (!global->current)
+ return;
+
+ context = GTK_IM_CONTEXT_WAYLAND (global->current);
+ TODO: does this clear text input or modify text?
+ reset_preedit (context);
+ */
+}
static void
text_input_preedit (void *data,
@@ -158,6 +169,7 @@ text_input_preedit (void *data,
context->pending_preedit.cursor_end = cursor_end;
}
+
static void
text_input_preedit_apply (GtkIMContextWaylandGlobal *global)
{
@@ -652,11 +664,6 @@ gtk_im_context_wayland_focus_out (GtkIMContext *context)
zwp_text_input_v3_disable (global->text_input);
commit_state (context_wayland);
-
- /* after disable, incoming state changes won't take effect anyway */
- text_input_preedit (global, global->text_input, "", 0, 0);
- text_input_preedit_apply (global);
-
global->current = NULL;
}

View File

@ -0,0 +1,34 @@
From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
Date: Tue, 11 Sep 2018 12:12:28 +0000
Subject: imwayland: Fix clearing of preedit text in webkitgtk
Fixes webkitgtk misbehaviour as outlined in
https://gitlab.gnome.org/GNOME/gtk/issues/1316#note_312942 , which was
introduced in 49b17e6c.
The preedit will be cleared on exit only if it is already present.
Origin: upstream, 3.24.1, commit:99669503fbc228fcca0edcf9a739354808c46ddb
Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1316
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908120
---
modules/input/imwayland.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/input/imwayland.c b/modules/input/imwayland.c
index 1fe95f3..25144f3 100644
--- a/modules/input/imwayland.c
+++ b/modules/input/imwayland.c
@@ -654,8 +654,11 @@ gtk_im_context_wayland_focus_out (GtkIMContext *context)
commit_state (context_wayland);
/* after disable, incoming state changes won't take effect anyway */
- text_input_preedit (global, global->text_input, NULL, 0, 0);
- text_input_preedit_apply (global);
+ if (context_wayland->current_preedit.text)
+ {
+ text_input_preedit (global, global->text_input, NULL, 0, 0);
+ text_input_preedit_apply (global);
+ }
global->current = NULL;
}

View File

@ -0,0 +1,30 @@
From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
Date: Mon, 10 Sep 2018 08:32:23 +0000
Subject: imwayland: Fix clearing of preedit text
Fixes terminal emulator misbehaviour as outlined in
https://gitlab.gnome.org/GNOME/gtk/issues/1316, which was introduced
in 49b17e6c. The original commit cleared preedit text by setting it to
an empty string, which still counted as existing preedit. The fix sets
preedit string to null, which is correctly understood as not present.
Origin: upstream, 3.24.1, commit:c22d5ab9f6ae0782c2a472feb58f3b3acd5a03bc
Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1316
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908120
---
modules/input/imwayland.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/input/imwayland.c b/modules/input/imwayland.c
index 11d09d2..1fe95f3 100644
--- a/modules/input/imwayland.c
+++ b/modules/input/imwayland.c
@@ -654,7 +654,7 @@ gtk_im_context_wayland_focus_out (GtkIMContext *context)
commit_state (context_wayland);
/* after disable, incoming state changes won't take effect anyway */
- text_input_preedit (global, global->text_input, "", 0, 0);
+ text_input_preedit (global, global->text_input, NULL, 0, 0);
text_input_preedit_apply (global);
global->current = NULL;

View File

@ -1,5 +1,7 @@
GtkApplication-Fix-CRITICAL-on-shutdown-when-register_ses.patch
Fix-portal-path-handling.patch
imwayland-Fix-clearing-of-preedit-text.patch
imwayland-Fix-clearing-of-preedit-text-in-webkitgtk.patch
016_no_offscreen_widgets_grabbing.patch
017_no_offscreen_device_grabbing.patch
018_gdkenumtypes.c_location.patch
@ -7,5 +9,4 @@ Fix-portal-path-handling.patch
060_ignore-random-icons.patch
no-accessibility-dump.patch
reftest-known-fail.patch
Revert-imwayland-clear-preedit-on-focus-out.patch
Don-t-test-default-constructed-GdkPixbuf-properties.patch