Skip to content

imcontext: Tweak Compose sequence preedit

Matthias Clasen requested to merge input-tweaks into master

The changes in this branch address several issues: #10 (closed), #4124 (closed), #4127 (closed)

One concern with the changes (and the reason the tests currently fail) is that the general algorithmic dead key handling in this branch disagrees with the X11 Compose file about some double-accent sequences, such as:

<dead_circumflex> <dead_grave> A

we translate this with a stack machine of sorts: we go to the Unicode sequence

A <combining grave> <combining circumflex>

which normalizes to . In order words, we have the "hat on top".

The X Compose file, on the other hand, declares that this sequence shall result in U+1EA6, A with circumflex and grave. In other words, they have the "grave on top".

It seems that the X Compose file discriminates in favor of the one double-accent combination that made it into Unicode. But that is largely historical.

I am still discussing this with the IBus team.


Another open question is whether to keep special handling of repeated dead keys that we have in the code now. Typing <dead_acute> <dead_acute> will give you a non-combining acute accent. We could remove that special-casing now, and require users to type <dead_acute> to get a non-combining accent.

Edited by Matthias Clasen

Merge request reports