src/bin/inputmgr/e_input_seat.c \
src/bin/inputmgr/e_input_thread_client.c \
src/bin/inputmgr/e_device.c \
+src/bin/inputmgr/ecore_device_ex.c \
src/bin/inputmgr/e_devicemgr_keyboard_grab.c \
src/bin/inputmgr/e_devicemgr_relative_motion_grab.c \
src/bin/inputmgr/e_devicemgr.c \
#include "e_utils_intern.h"
#include "e_input_seat_intern.h"
#include "e_seat_intern.h"
+#include "ecore_device_ex_intern.h"
#include <libudev.h>
#include <glib.h>
E_Input_Evdev *evdev;
Ecore_Device_Class clas;
Ecore_Device_Subclass subclas;
+ char *seatname;
} E_Device_Info;
#define TS_DO
ecore_device_identifier_set(dev, evdev->path);
ecore_device_class_set(dev, clas);
ecore_device_subclass_set(dev, subclas);
+ ecore_device_ex_seatname_set(dev, dev_info->seatname);
if (!evdev->ecore_dev)
{
_e_input_ecore_device_event(dev, e_input_seat_name_get(evdev->seat), EINA_TRUE);
end:
+ E_FREE(dev_info->seatname);
E_FREE(dev_info);
}
dev_info->evdev = evdev;
dev_info->clas = clas;
dev_info->subclas = subclas;
+ dev_info->seatname = strdup(e_device_seatname_get(e_dev));
ecore_main_loop_thread_safe_call_async(_e_input_add_ecore_device_async_cb, dev_info);
}
}
_e_input_ecore_device_event(dev, e_input_seat_name_get(evdev->seat), EINA_FALSE);
+ ecore_device_ex_seatname_del(dev);
ecore_device_del(dev);
}
}
_e_input_ecore_device_class_to_string(ecore_device_class_get(data)));
ecore_device_unref(data);
+ ecore_device_ex_seatname_del(data);
ecore_device_del(data);
}
}
#include "e_utils_intern.h"
#include "e_display_intern.h"
#include "e_input_seat_intern.h"
+#include "ecore_device_ex_intern.h"
#include <glib.h>
#include <ctype.h>
Ecore_Device *dev;
E_Input_Pending_Event *ev;
- if (evdev->ecore_dev) ecore_device_del(evdev->ecore_dev);
+ if (evdev->ecore_dev)
+ {
+ ecore_device_ex_seatname_del(evdev->ecore_dev);
+ ecore_device_del(evdev->ecore_dev);
+ }
if (evdev->ecore_dev_list)
EINA_LIST_FREE(evdev->ecore_dev_list, dev)
{
+ ecore_device_ex_seatname_del(evdev->ecore_dev);
ecore_device_del(dev);
}
--- /dev/null
+#include "e_device_intern.h"
+
+EINTERN void
+ecore_device_ex_seatname_set(Ecore_Device *dev, const char *seatname)
+{
+ efl_key_data_set(dev, "seatname", eina_stringshare_add(seatname));
+}
+
+EINTERN char *
+ecore_device_ex_seatname_get(Ecore_Device *dev)
+{
+ return (char *)efl_key_data_get(dev, "seatname");
+}
+
+EINTERN void
+ecore_device_ex_seatname_del(Ecore_Device *dev)
+{
+ eina_stringshare_del(ecore_device_ex_seatname_get(dev));
+}
--- /dev/null
+#ifndef ECORE_DEVICE_EX_INTERN_H
+#define ECORE_DEVICE_EX_INTERN_H
+
+#include "e_intern.h"
+
+EINTERN void ecore_device_ex_seatname_set(Ecore_Device *dev, const char *seatname);
+EINTERN char *ecore_device_ex_seatname_get(Ecore_Device *dev);
+EINTERN char *ecore_device_ex_seatname_del(Ecore_Device *dev);
+
+#endif /* end of include guard: ECORE_DEVICE_EX_INTERN_H */