diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-03-17 16:11:57 +0100 |
---|---|---|
committer | Robert Mader <robert.mader@posteo.de> | 2020-03-17 22:15:52 +0000 |
commit | db9b60cc6357539d0deefd9ded236b1dd302d4a2 (patch) | |
tree | d462f472501791a7e39e6b816620f5e859bae193 | |
parent | fa74da0039b848e3beaff5d0da44e6d3f2c46dc9 (diff) | |
download | mutter-db9b60cc6357539d0deefd9ded236b1dd302d4a2.tar.gz |
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
-rw-r--r-- | src/wayland/meta-wayland-text-input.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |