E_API Ecore_Device *e_input_evdev_get_ecore_device(const char *path, Ecore_Device_Class clas);
E_API unsigned int e_input_device_touch_pressed_get(E_Input_Device *dev);
+E_API Eina_Bool e_input_device_keyboard_remap_set(E_Input_Device *dev, int *from_keys, int *to_keys, int num);
#endif
#endif
return pressed;
}
+
+E_API Eina_Bool
+e_input_device_keyboard_remap_set(E_Input_Device *dev, int *from_keys, int *to_keys, int num)
+{
+ E_Input_Seat *seat = NULL;
+ E_Input_Evdev *edev = NULL;
+ Eina_List *l = NULL, *l2 = NULL;
+ Eina_Bool res = EINA_TRUE, ret = EINA_TRUE;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dev, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dev->seats, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(from_keys, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(to_keys, EINA_FALSE);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(num <= 0, EINA_FALSE);
+
+ EINA_LIST_FOREACH(dev->seats, l, seat)
+ {
+ EINA_LIST_FOREACH(e_input_seat_evdev_list_get(seat), l2, edev)
+ {
+ if (edev->caps & E_INPUT_SEAT_KEYBOARD)
+ {
+ res = e_input_evdev_key_remap_enable(edev, EINA_TRUE);
+ if (res)
+ res = e_input_evdev_key_remap_set(edev, from_keys, to_keys, num);
+ }
+ if (!res) ret = EINA_FALSE;
+ }
+ }
+
+ return ret;
+}
timestamp = libinput_event_keyboard_get_time(event);
code = libinput_event_keyboard_get_key(event);
- code = _device_remapped_key_get(edev, code) + 8;
+ code = _device_remapped_key_get(edev, code + 8);
state = libinput_event_keyboard_get_key_state(event);
key_count = libinput_event_keyboard_get_seat_key_count(event);