diff options
author | Jan Arne Petersen <jpetersen@openismus.com> | 2012-11-18 19:06:43 +0100 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-11-27 13:02:26 -0500 |
commit | d9be93b96453e73aa53278a319d9e771ec4c06ab (patch) | |
tree | 970d7f41b6232459ced9e1368251e0ee110b618d /clients/keyboard.c | |
parent | 674fd1d62531093ab13bd67d86517d1aad18733d (diff) | |
download | weston-d9be93b96453e73aa53278a319d9e771ec4c06ab.tar.gz |
text: Rename and extend text_model key event
Rename the key event in text_model to keysym and add serial, time and
modifiers arguments. Add a modifiers_map event to transfer an array of
0-terminated modifier names, so that a mapping of modifiers to the
modifier bit mask is possible.
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Diffstat (limited to 'clients/keyboard.c')
-rw-r--r-- | clients/keyboard.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/clients/keyboard.c b/clients/keyboard.c index 1b2a9ba7..d1e5dbff 100644 --- a/clients/keyboard.c +++ b/clients/keyboard.c @@ -234,7 +234,7 @@ virtual_keyboard_commit_preedit(struct virtual_keyboard *keyboard) } static void -keyboard_handle_key(struct keyboard *keyboard, const struct key *key) +keyboard_handle_key(struct keyboard *keyboard, uint32_t time, const struct key *key) { const char *label = keyboard->state == keyboardstate_default ? key->label : key->alt; @@ -259,8 +259,10 @@ keyboard_handle_key(struct keyboard *keyboard, const struct key *key) break; case keytype_enter: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_KP_Enter, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_KP_Enter, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; case keytype_space: keyboard->keyboard->preedit_string = strcat(keyboard->keyboard->preedit_string, @@ -277,28 +279,38 @@ keyboard_handle_key(struct keyboard *keyboard, const struct key *key) break; case keytype_tab: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_Tab, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_Tab, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; case keytype_arrow_up: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_Up, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_Up, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; case keytype_arrow_left: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_Left, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_Left, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; case keytype_arrow_right: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_Right, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_Right, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; case keytype_arrow_down: virtual_keyboard_commit_preedit(keyboard->keyboard); - input_method_context_key(keyboard->keyboard->context, - XKB_KEY_Down, WL_KEYBOARD_KEY_STATE_PRESSED); + input_method_context_keysym(keyboard->keyboard->context, + display_get_serial(keyboard->keyboard->display), + time, + XKB_KEY_Down, WL_KEYBOARD_KEY_STATE_PRESSED, 0); break; } } @@ -330,7 +342,7 @@ button_handler(struct widget *widget, for (i = 0; i < sizeof(keys) / sizeof(*keys); ++i) { col -= keys[i].width; if (col < 0) { - keyboard_handle_key(keyboard, &keys[i]); + keyboard_handle_key(keyboard, time, &keys[i]); break; } } |