Hi folks.
This is to let you know that I intend to implement prefixed dead keys support in the input pipeline, for international keyboards. (
fxbug.dev/75723).
The keymaps today rely on postfix composition, which is not how most dead key keyboards work.
The main idea is to add a mini state machine into the input pipeline that monitors for combining characters and retains them until a followup character comes in, or a change of focus occurs. If a followup character comes in, the combining character is normalized with the followup character and the resulting code point is emitted. If a change of focus occurred, the retained combining character is flushed.
A slight complication in this process is that dead keys need to be communicated both to key event clients and to text field editors. So placing this state machine early into the input pipeline won't work, as it would not allow text field editors to see the dead keys as they come in.
This suggests to me that the change needs to be made in the text_manager binary, not the input pipeline library, to ensure that the keyevent pipeline does not steal keys from the editor.
HTH,
F