From: Jan Arne Petersen <[email protected]> >>> 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. > > My current idea would be to add a modifier_names event to text_model, so > that an input method sends an array of known modifier names (which would > be the same used by xkb_keymap_mod_get_index). The mapping to a bitmask > is than just done by the index of that modifier name in the array.
I implemented it that way in this patch series. Jan Arne Petersen (8): text: Start input method from configuration text: Rename and extend text_model key event text: Send more information with keysym events text: Add support for grabbing the keyboard text: Add support for forwarding key events window: Add utils for xkb keyboard input window: Allow to get xkb context from display text: Add simple compose input method Rob Bradford (1): editor: Add support for editing text using the keyboard clients/.gitignore | 1 + clients/Makefile.am | 13 +- clients/editor.c | 153 ++++++++++++++++---- clients/keyboard-utils.c | 173 +++++++++++++++++++++++ clients/keyboard-utils.h | 67 +++++++++ clients/keyboard.c | 68 +++++++-- clients/weston-simple-im.c | 338 +++++++++++++++++++++++++++++++++++++++++++++ clients/window.c | 51 +++++++ clients/window.h | 11 ++ protocol/input-method.xml | 35 +++++ protocol/text.xml | 22 ++- src/compositor.c | 5 +- src/compositor.h | 10 +- src/text-backend.c | 297 +++++++++++++++++++++++++++++++++++++-- weston.ini | 3 + 15 files changed, 1182 insertions(+), 65 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
