Draft: Input method next
This is a continuation of the work started by @emersion, a new suggestion for V3 based on all the comments I have read so far.
Why do I have a text input suggestion as well? Because my approach to implement this requires that I implement both. EDIT: This is not a suggestion for text input, I just need a 1-1 reference to develop against. I am however testing out features, that if they work, I will make an MR to text input with.
Disclaimer: As I have a four month old in the house, development is slow. I have a basic compositor implementation, a basic text input client implementation, currently working on an IME client library so I can more easily port my own real IME and use that for testing. I will update accordingly when I find the time or things have been tested.
Changes:
- Removed the "unavailable" event as there definitely is a case for keeping things flexible and having several input methods running at the same time. This should not be more difficult than a list of text inputs associated with one input method. If the compositor changes the input method, the currently focused text input should just be removed from one list and added to another. This would be a typical many to one relation where text input is related to one input method at a time and input methods are related to several text inputs.
- "app id" has been added to activate such that one can track which input context is relevant.
- Explicitly written that this is a privileged protocol
- Removed keyboard grab, instead just forward keys to both the input method and the currently focused client.
- Keymap and key_repeat is moved to be under the input method interface directly.
- Added styling of underline, text and text-background color. I am of the opinion that the underline should follow the text color, but I might change this so we can be as flexible as possible.
- Changed the input method popup to be an xdg-popup, to avoid re-implementing existing functionality
Requirements for merging
-
ACKs:
-
Review
Compositor Implementations:
Client Implementations:
IME client implementations:
-
Working examples showing all new features