eina_stringshare_del(e->key);
eina_stringshare_del(e->compose);
- if (e_input_thread_mode_get())
- {
- if (e->dev) g_object_unref(e->dev);
- }
- else
- {
- if (e->dev) ecore_device_unref(e->dev);
- }
+ e_input_event_device_unref(e->dev, EINA_FALSE);
if (e->data) E_FREE(e->data);
_e_input_event_mouse_move_cb_free(void *data EINA_UNUSED, void *event)
{
Ecore_Event_Mouse_Move *ev = event;
-
- if (ev->dev)
- {
- if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
- g_object_unref(ev->dev);
- else
- ecore_device_unref(ev->dev);
- }
-
+ e_input_event_device_unref(ev->dev, EINA_TRUE);
free(ev);
}
_e_input_event_mouse_wheel_cb_free(void *data EINA_UNUSED, void *event)
{
Ecore_Event_Mouse_Wheel *ev = event;
-
- if (ev->dev)
- {
- if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
- g_object_unref(ev->dev);
- else
- ecore_device_unref(ev->dev);
- }
-
+ e_input_event_device_unref(ev->dev, EINA_TRUE);
free(ev);
}
_e_input_event_mouse_button_cb_free(void *data EINA_UNUSED, void *event)
{
Ecore_Event_Mouse_Button *ev = event;
-
- if (ev->dev)
- {
- if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
- g_object_unref(ev->dev);
- else
- ecore_device_unref(ev->dev);
- }
-
+ e_input_event_device_unref(ev->dev, EINA_TRUE);
free(ev);
}
_e_input_event_key_cb_free(void *data EINA_UNUSED, void *event)
{
Ecore_Event_Key *ev = event;
-
- if (e_input_thread_mode_get())
- {
- if (ev->dev) g_object_unref(ev->dev);
- }
- else
- {
- if (ev->dev) ecore_device_unref(ev->dev);
- }
-
+ e_input_event_device_unref(ev->dev, EINA_FALSE);
if (ev->data) E_FREE(ev->data);
free(ev);
_e_input_event_send(source, ev);
}
+
+EINTERN void
+e_input_event_device_unref(Eo *dev, Eina_Bool pointer_event)
+{
+ if (!dev) return;
+
+ if (e_input_thread_mode_get())
+ {
+ if (pointer_event)
+ {
+ if (e_input_pointer_thread_mode_get())
+ {
+ g_object_unref(dev);
+ return;
+ }
+ }
+ else
+ {
+ g_object_unref(dev);
+ return;
+ }
+ }
+
+ ecore_device_unref(dev);
+}