E_API E_Input *e_input = NULL;
+static Eina_Bool
+_e_input_cb_screen_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
+{
+ Eina_List *l;
+ Eina_List *devices;
+ E_Input_Device *dev_data;
+
+ devices = (Eina_List *)e_input_devices_get();
+
+ EINA_LIST_FOREACH(devices, l, dev_data)
+ {
+ e_input_device_output_changed(dev_data);
+ }
+ return ECORE_CALLBACK_PASS_ON;
+}
+
EINTERN const char *
e_input_base_dir_get(void)
{
e_input->dev = dev;
+ E_LIST_HANDLER_APPEND(e_input->handlers, E_EVENT_SCREEN_CHANGE, _e_input_cb_screen_change, NULL);
+
TRACE_INPUT_END();
return _e_input_init_count;
EINTERN int
e_input_shutdown(void)
{
+ Ecore_Event_Handler *h = NULL;
+
if (_e_input_init_count < 1) return 0;
if (--_e_input_init_count != 0) return _e_input_init_count;
E_EVENT_INPUT_ENABLED = -1;
E_EVENT_INPUT_DISABLED = -1;
+ EINA_LIST_FREE(e_input->handlers, h)
+ ecore_event_handler_del(h);
+
if (e_input->input_base_dir)
eina_stringshare_del(e_input->input_base_dir);
e_input_device_close(e_input->dev);
return EINA_FALSE;
}
+void
+e_input_device_output_changed(E_Input_Device *dev)
+{
+ E_Input_Seat *seat = NULL;
+ E_Input_Evdev *edev = NULL;
+ Eina_List *l = NULL, *l2 = NULL;
+
+ EINA_SAFETY_ON_NULL_RETURN(dev);
+ EINA_SAFETY_ON_NULL_RETURN(dev->seats);
+
+ EINA_LIST_FOREACH(dev->seats, l, seat)
+ {
+ EINA_LIST_FOREACH(e_input_seat_evdev_list_get(seat), l2, edev)
+ {
+ _device_calibration_set(edev);
+ }
+ }
+}
E_API const Eina_List *
e_input_devices_get(void)
void _e_input_evdev_device_destroy(E_Input_Evdev *evdev);
void _e_input_pointer_motion_post(E_Input_Evdev *edev);
+void _device_calibration_set(E_Input_Evdev *edev);
+void e_input_device_output_changed(E_Input_Device *dev);
+
#endif
#endif