/* if we have a grab, send this key to it */
if (grab)
- grab->interface->key(grab, ev->timestamp, key,
- WL_KEYBOARD_KEY_STATE_RELEASED);
+ {
+ /* send keycode from evdev */
+ grab->interface->key(grab,
+ ev->timestamp,
+ ev->keycode ? ev->keycode : key,
+ WL_KEYBOARD_KEY_STATE_RELEASED);
+ }
/* update xkb key state */
xkb_state_update_key(_e_wl_comp->input->xkb.state, key + 8, XKB_KEY_UP);
/* if we have a grab, send this key to it */
if (grab)
- grab->interface->key(grab, ev->timestamp, key,
- WL_KEYBOARD_KEY_STATE_PRESSED);
+ {
+ /* send keycode from evdev */
+ grab->interface->key(grab,
+ ev->timestamp,
+ ev->keycode ? ev->keycode : key,
+ WL_KEYBOARD_KEY_STATE_PRESSED);
+ }
/* update xkb key state */
xkb_state_update_key(_e_wl_comp->input->xkb.state, key + 8, XKB_KEY_DOWN);