xim: Compose results of any length, StatusNone styles; ibus: no cursor size check

A Compose sequence whose result is more than one character has no
keysym, so xkb_compose_state_get_one_sym gave nothing and the result was
lost; the UTF-8 the compose state holds is committed instead.  Clients
that ask for a StatusNone style — fcitx5 offers them — failed to create
an input context; the three preedit styles come in both status flavours
now.  IBus SetCursorLocation returned an error for a negative width or
height that nothing reads and no client ever waits for.
This commit is contained in:
2026-08-17 01:49:06 +09:00
parent 0cb395579f
commit 7c9e736996
4 changed files with 13 additions and 8 deletions

View File

@@ -59,6 +59,8 @@ query; the Hanja dictionary lists one modern Hangul syllable at a time.
| XIM PreeditPosition | strans popup | strans popup |
| XIM PreeditNothing | strans popup | strans popup |
Each XIM style is offered with StatusNothing and with StatusNone.
XIM text travels as `COMPOUND_TEXT`, which carries any UTF-8. A client that
sends `XNSpotLocation` gets the popup at that spot whatever its preedit
style; otherwise the popup sits under the focus window, or under the client