compose: one Compose table for the XIM and IBus frontends
An IBus client throws away a dead key its engine did not take — the GTK module's own comment says so, and Qt does the same — so é and ü were lost in every IBus application, while XIM composed them with a table of its own. That table moves to compose.c, which both frontends now use; xim.c is the shorter for it. A finished sequence is text, not a key: the engine is asked to hand back what it had pending, and the composed text follows it, so the composed character can no longer land before the syllable typed before it.
This commit is contained in:
@@ -69,6 +69,11 @@ a time. Leaving the field or clicking elsewhere commits what is pending.
|
||||
|
||||
Each XIM style is offered with StatusNothing and with StatusNone.
|
||||
|
||||
Dead keys and Compose sequences are composed by strans itself for the XIM
|
||||
and IBus frontends, from the table `XCOMPOSEFILE` or the locale names; the
|
||||
GTK 3 module leaves them to GtkIMContextSimple. Their text follows
|
||||
whatever was pending.
|
||||
|
||||
XIM text travels as `COMPOUND_TEXT`, which carries any UTF-8. A client that
|
||||
sends `XNSpotLocation` gets the popup under that spot whatever its preedit
|
||||
style, and above the line when there is no room below; otherwise the popup
|
||||
|
||||
Reference in New Issue
Block a user