*/
EAPI void elput_input_pointer_max_set(Elput_Manager *manager, int maxw, int maxh);
+/**
+ * Calibrate input devices for given screen size
+ *
+ * @param manager
+ * @param w
+ * @param h
+ *
+ * @ingroup Elput_Input_Group
+ * @since 1.18
+ */
+EAPI void elput_input_devices_calibrate(Elput_Manager *manager, int w, int h);
+
# endif
# undef EAPI
libinput_unref(manager->input.lib);
manager->input.lib = NULL;
}
+
+ if ((manager->pending_ptr_x) || (manager->pending_ptr_y))
+ {
+ elput_input_pointer_xy_set(manager, NULL, manager->pending_ptr_x,
+ manager->pending_ptr_y);
+ manager->pending_ptr_x = 0;
+ manager->pending_ptr_y = 0;
+ }
}
static void
/* if no seat name is passed in, just use default seat name */
if (!seat) seat = "seat0";
+ if (eina_list_count(manager->input.seats) < 1)
+ {
+ manager->pending_ptr_x = x;
+ manager->pending_ptr_y = y;
+ return;
+ }
+
EINA_LIST_FOREACH(manager->input.seats, l, eseat)
{
if (!eseat->ptr) continue;
manager->input.pointer_w = maxw;
manager->input.pointer_h = maxh;
}
+
+EAPI void
+elput_input_devices_calibrate(Elput_Manager *manager, int w, int h)
+{
+ Elput_Seat *eseat;
+ Elput_Device *edev;
+ Eina_List *l, *ll;
+
+ EINA_SAFETY_ON_NULL_RETURN(manager);
+
+ EINA_LIST_FOREACH(manager->input.seats, l, eseat)
+ {
+ EINA_LIST_FOREACH(eseat->devices, ll, edev)
+ {
+ edev->ow = w;
+ edev->oh = h;
+ _evdev_device_calibrate(edev);
+ }
+ }
+}
Ecore_Event_Handler *vt_hdlr;
uint32_t window;
+ int pending_ptr_x;
+ int pending_ptr_y;
+
struct
{
char *path;
void _evdev_pointer_destroy(Elput_Pointer *ptr);
void _evdev_touch_destroy(Elput_Touch *touch);
void _evdev_pointer_motion_send(Elput_Device *edev);
+void _evdev_device_calibrate(Elput_Device *dev);
Elput_Pointer *_evdev_pointer_get(Elput_Seat *seat);
Elput_Keyboard *_evdev_keyboard_get(Elput_Seat *seat);