Backport fix for preedit cursor position bug (#1812449)

This commit is contained in:
Adam Williamson 2020-03-23 12:43:23 -07:00
parent 83373997de
commit ba75e27d37
2 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,42 @@
From db9b60cc6357539d0deefd9ded236b1dd302d4a2 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 17 Mar 2020 16:11:57 +0100
Subject: [PATCH] wayland: Represent preedit string cursor offset in bytes
Both IBus and ClutterInputFocus work in character offsets for the cursor
position in the preedit string. However the zwp_text_input protocol does
define the preedit string cursor offset to be in bytes.
Fixes client bugs in representing the caret within the preedit string,
as we were clearly giving the wrong offset.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2517
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1132
---
src/wayland/meta-wayland-text-input.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c
index ee9b895cb..deff44c1b 100644
--- a/src/wayland/meta-wayland-text-input.c
+++ b/src/wayland/meta-wayland-text-input.c
@@ -207,12 +207,14 @@ meta_wayland_text_input_focus_set_preedit_text (ClutterInputFocus *focus,
{
MetaWaylandTextInput *text_input;
struct wl_resource *resource;
+ gsize pos;
text_input = META_WAYLAND_TEXT_INPUT_FOCUS (focus)->text_input;
+ pos = g_utf8_offset_to_pointer (text, cursor) - text;
wl_resource_for_each (resource, &text_input->focus_resource_list)
{
- zwp_text_input_v3_send_preedit_string (resource, text, cursor, cursor);
+ zwp_text_input_v3_send_preedit_string (resource, text, pos, pos);
}
meta_wayland_text_input_focus_defer_done (focus);
--
2.25.1

View File

@ -8,7 +8,7 @@
Name: mutter
Version: 3.36.0
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -18,6 +18,11 @@ Source0: http://download.gnome.org/sources/%{name}/3.36/%{name}-%{version}
# Work-around for OpenJDK's compliance test
Patch0: 0001-window-actor-Special-case-shaped-Java-windows.patch
# Fix preedit string cursor position bug
# https://gitlab.gnome.org/GNOME/gtk/issues/2517
# https://bugzilla.redhat.com/show_bug.cgi?id=1812449
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1132
Patch1: 0001-wayland-Represent-preedit-string-cursor-offset-in-by.patch
BuildRequires: chrpath
BuildRequires: pango-devel
@ -163,6 +168,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests
%changelog
* Mon Mar 23 2020 Adam Williamson <awilliam@redhat.com> - 3.36.0-2
- Backport fix for preedit cursor position bug (#1812449)
* Sat Mar 07 2020 Florian Müllner <fmuellner@redhat.com> - 3.36.0-1
- Update to 3.36.0