mirror of
https://gitlab.freedesktop.org/wayland/wayland-protocols.git
synced 2026-05-11 08:09:05 +02:00
Synchronization is only needed for 3 things: - to let the input method know when its update was applied not like it expected, - especially when a byte index stopped being on bytes boundary due to extra change and a retry is needed, - to break off events coming to an old text input after focusing a new one. The one big change of this is relaxing the contract of the input method. The application now doesn't apply the changes exactly. "delete_surrounding_text" is the only affected place so far, now it mentions the unexactness explicitly. The change is necessary because without strict sync, the input method can't know if it's sending messages aligned on code point boundaries. This solves 90% of the retry problem. Such problems all stem from text changing near the caret, where the user already has an expectation of weird interactions (multi-user typing over each other - IME garbage in, text garbage out), or the user expects something that the input method can't correct (text to emoji substitution should not result in a retry due to unexpected output, making this work with IME is the client's problem). The other big change is keeping sync for the purpose of switching text fields. Hopefully this is enough for everyone, and it stays more or less compatible. Signed-off-by: Dorota Czaplejewicz <gilapfco.dcz@porcupinefactory.org> |
||
|---|---|---|
| .. | ||
| xx-cutouts | ||
| xx-input-method | ||
| xx-keyboard-filter | ||
| xx-session-management | ||
| xx-text-input | ||
| xx-zones | ||