/* local subsystem functions */
-static void _e_drag_end(void);
+static void _e_drag_end(E_Drag *drag);
static void _e_drag_free(E_Drag *drag);
static Eina_Bool _e_dnd_cb_mouse_up(void *data, int type, void *event);
/* local subsystem functions */
static void
-_e_drag_end(void)
+_e_drag_end(E_Drag *drag)
{
- if (!_drag_current) return;
-
- evas_object_hide(_drag_current->comp_object);
+ evas_object_hide(drag->comp_object);
- if (_drag_current->cb.finished)
- _drag_current->cb.finished(_drag_current);
- _drag_current->cb.finished = NULL;
+ if (drag->cb.finished)
+ drag->cb.finished(drag);
+ drag->cb.finished = NULL;
- e_object_del(E_OBJECT(_drag_current));
+ e_object_del(E_OBJECT(drag));
e_comp_ungrab_input(1, 1);
}
Ecore_Event_Mouse_Button *ev = event;
int device_id = e_comp_wl_data_current_device_id_get();
+ if (!_drag_current) return ECORE_CALLBACK_PASS_ON;
if (ev->window != _drag_win) return ECORE_CALLBACK_PASS_ON;
if ((device_id >= 0) &&
(ev->multi.device != device_id))
return ECORE_CALLBACK_PASS_ON;
- if (_drag_current && _drag_current->button_mask)
+ if (_drag_current->button_mask)
{
_drag_current->button_mask &= ~(1 << (ev->buttons - 1));
if (_drag_current->button_mask) return ECORE_CALLBACK_RENEW;
}
- _e_drag_end();
+ _e_drag_end(_drag_current);
return ECORE_CALLBACK_PASS_ON;
}
source = e_comp_wl->drag_source;
source->accepted = EINA_FALSE;
- _e_drag_end();
+ _e_drag_end(_drag_current);
E_FREE(e_comp_wl->drag);
return ECORE_CALLBACK_PASS_ON;