WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
326573
[WPE] Wayland text-input-v3 pre-edit cursor offsets are bytes, but are used as characters
https://bugs.webkit.org/show_bug.cgi?id=326573
Summary
[WPE] Wayland text-input-v3 pre-edit cursor offsets are bytes, but are used a...
Simon Pena
Reported
2026-10-06 13:43:50 PDT
The text-input-v3 preedit_string event gives cursor_begin and cursor_end in bytes, with -1 meaning the cursor is hidden. The protocol does not say that cursor_begin comes first. WPEInputMethodContextWaylandV3 passes both on unchanged, as the pre-edit cursor offset and as the range of an underline, which are both counted in characters. With text that is not ASCII, the cursor position and the underline are wrong. When cursor_end is before cursor_begin, the underline range is reversed, and painting it hits an assertion in builds with assertions on. Steps (GNOME 46.0, Japanese input method): 1. Open a page with a text field in WPE MiniBrowser. 2. Type "a" with the input method in Hiragana mode. Mutter sends the text "あ" (3 bytes) with cursor_begin=3 and cursor_end=1. Mutter before 47 sent cursor_end in characters (
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3845
). Expected: no assertion; the cursor is after "あ". Actual: ASSERTION FAILED: start <= destination in RenderText::stringView(), called from TextBoxPainter::paintCompositionUnderline().
Attachments
Add attachment
proposed patch, testcase, etc.
Simon Pena
Comment 1
2026-10-06 13:48:43 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/76100
EWS
Comment 2
2026-10-09 00:37:41 PDT
Committed
323196@main
(f01f6b639410): <
https://commits.webkit.org/323196@main
> Reviewed commits have been landed. Closing PR #76100 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug