On Mon, Nov 05, 2012 at 03:26:38AM +0100, Jan Arne Petersen wrote: > From: Jan Arne Petersen <[email protected]> > > Hardware keyboard input allows input methods to grab the keyboard > and process hardware key events to generate text events (with > pre-edit) over the same text_model interface we use for the virtual > keyboard. This allows input methods which compose multiple key > events for inputting text like it is done for CJK languages. > > There is a weston-simple-im which uses the hardware keyboard input > to support classic X compose key like combinations: > http://en.wikipedia.org/wiki/Compose_key#Common_compose_combinations > > It makes allot of sense to reuse the wl_keyboard interface in the > input_method_context grab_keyboard request. But I am not so sure about > the wl_keyboard interface used in the get_keyboard request in > text_model. Maybe it would be better to merge the key event from > wl_keyboard into text_models keysym event and just add also keymap > and modifiers event to text_model.
> Jan Arne Petersen (15): > editor: Fix handling of UTF-8 text > editor: Initalize editor struct with 0 > editor: Remove preedit text on startup > keyboard: commit preedit before sending key events > keyboard: Rename keyboard to weston-keyboard This looks good and I've committed these first 5 patches. > text: Start input method from configuration I'm happy to see this functionality land, but there's few comments on the patch. > text: Rename and extend text_model key event I'm holding off on this one and the remaining patches. I think you're right that it's better to just add the events to text_model, but there's more to it than that. We need a better approach to modifiers than what you have in the keysym event. It needs to be compatible with the wl_keyboard modifier model. That's a bitmask too, but you need the xkb keymap to understand what the bits mean (xkb_map_mod_get_index). So we could add a keymap event to text_model, but it's a little expensive to send out and re-parse the xkb map, so I'd rather the text_model could grab it from the associated wl_keyboard (from wl_seat in text_model.enter). I'd also rather use a modifier event like wl_keyboard than send the modifiers with each keysym event. Now if we use the keymap from the associated wl_seat, have a modifier event and the keysym event, do we still need text_model.get_keyboard? Do we ever need the key codes at this level? And if we do, can we just get them from the real wl_keyboard? That is, send out the keycode from wl_keyboard interface and the keysym from text_model? Hmm, and if we rely on wl_keyboard in text_model (for the keymap) should we just get modifier events from wl_keyboard as well? That is, we only add the keysym event to text_model and keymap and modifiers come from the underlying wl_keyoard. Kristian > text: Add support for grabbing the keyboard > text: Add get_keyboard to text_model > text: Add seat argument to text_model enter event > text: Add support for forwarding key events > window: Add utils for xkb keyboard input > window: Allow to get xkb context from display > editor: Add support for hardware key events > text: Add simple compose input method > > clients/.gitignore | 3 +- > clients/Makefile.am | 20 ++- > clients/editor.c | 236 ++++++++++++++++++++++++++++--- > clients/keyboard-utils.c | 173 +++++++++++++++++++++++ > clients/keyboard-utils.h | 67 +++++++++ > clients/keyboard.c | 72 +++++++--- > clients/weston-simple-im.c | 338 > +++++++++++++++++++++++++++++++++++++++++++++ > clients/window.c | 6 + > clients/window.h | 3 + > protocol/input-method.xml | 32 +++++ > protocol/text.xml | 23 ++- > src/compositor.c | 2 +- > src/compositor.h | 4 +- > src/text-backend.c | 267 +++++++++++++++++++++++++++++++++-- > weston.ini | 3 + > 15 files changed, 1188 insertions(+), 61 deletions(-) > create mode 100644 clients/keyboard-utils.c > create mode 100644 clients/keyboard-utils.h > create mode 100644 clients/weston-simple-im.c > > -- > 1.7.11.7 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
