EINTERN Eina_Bool e_input_evdev_key_remap_enable(E_Input_Evdev *edev, Eina_Bool enable);
EINTERN Eina_Bool e_input_evdev_key_remap_set(E_Input_Evdev *edev, int *from_keys, int *to_keys, int num);
EINTERN Eina_Bool e_input_evdev_touch_calibration_set(E_Input_Evdev *edev, float matrix[6]);
+EINTERN Eina_Bool e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed);
E_API const Eina_List *e_input_devices_get(void);
E_API Eina_Bool e_input_device_pointer_warp(E_Input_Device *dev, int x, int y);
+E_API Eina_Bool e_input_device_mouse_accel_speed_set(E_Input_Device *dev, double speed);
E_API const char *e_input_evdev_name_get(E_Input_Evdev *evdev);
E_API Eina_List *e_input_seat_evdev_list_get(E_Input_Seat *seat);
return einput_devices;
}
+EAPI Eina_Bool
+e_input_device_mouse_accel_speed_set(E_Input_Device *dev, double speed)
+{
+ 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_LIST_FOREACH(dev->seats, l, seat)
+ {
+ EINA_LIST_FOREACH(e_input_seat_evdev_list_get(seat), l2, edev)
+ {
+ if (edev->caps & E_INPUT_SEAT_POINTER)
+ res = e_input_evdev_mouse_accel_speed_set(edev, speed);
+ if (!res) ret = EINA_FALSE;
+ }
+ }
+
+ return ret;
+}
return EINA_TRUE;
}
+EAPI Eina_Bool
+e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(edev, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(edev->device, EINA_FALSE);
+
+ if (!libinput_device_has_capability(edev->device, LIBINPUT_DEVICE_CAP_POINTER))
+ return EINA_FALSE;
+
+ if (!libinput_device_config_accel_is_available(edev->device))
+ return EINA_FALSE;
+
+ if (libinput_device_config_accel_set_speed(edev->device, speed) !=
+ LIBINPUT_CONFIG_STATUS_SUCCESS)
+ {
+ WRN("Failed to set mouse accel about device: %s\n",
+ libinput_device_get_name(edev->device));
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}