forked from enlightenment/enlightenment
fix menu item dnd grabber
This commit is contained in:
parent
245c308bb3
commit
595ba0859d
|
@ -2768,27 +2768,10 @@ _e_menu_cb_item_in(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED_
|
|||
}
|
||||
|
||||
static void
|
||||
_e_menu_cb_item_out(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
_e_menu_cb_item_out(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info EINA_UNUSED)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
Evas_Event_Mouse_In *ev;
|
||||
|
||||
mi = data;
|
||||
ev = event_info;
|
||||
E_Menu_Item *mi = data;
|
||||
e_menu_item_active_set(mi, 0);
|
||||
if (_e_menu_activate_maybe_drag)
|
||||
{
|
||||
if (mi->drag_cb.func)
|
||||
{
|
||||
/* User is dragging a draggable item elsewhere. */
|
||||
mi->drag.x = ev->output.x - (ev->output.x - mi->x);
|
||||
mi->drag.y = ev->output.y - (ev->output.y - mi->y);
|
||||
_e_menu_deactivate_all();
|
||||
mi->drag_cb.func(mi->drag_cb.data, mi->menu, mi);
|
||||
}
|
||||
/* Either way, the maybe drag stops here. */
|
||||
_e_menu_activate_maybe_drag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -2976,7 +2959,25 @@ _e_menu_cb_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event)
|
|||
_e_menu_submenu_activate(mi);
|
||||
}
|
||||
}
|
||||
evas_event_feed_mouse_move(m->evas, ev->x, ev->y, ev->timestamp, NULL);
|
||||
if (!_e_menu_activate_maybe_drag)
|
||||
/* this is useless while the mouse is down */
|
||||
evas_event_feed_mouse_move(m->evas, ev->x, ev->y, ev->timestamp, NULL);
|
||||
}
|
||||
if (_e_active_menu_item)
|
||||
{
|
||||
if (!E_INSIDE(ev->x, ev->y, _e_active_menu_item->x, _e_active_menu_item->y, _e_active_menu_item->w, _e_active_menu_item->h))
|
||||
{
|
||||
if (_e_active_menu_item->drag_cb.func)
|
||||
{
|
||||
/* User is dragging a draggable item elsewhere. */
|
||||
_e_active_menu_item->drag.x = ev->x - (ev->x - _e_active_menu_item->x);
|
||||
_e_active_menu_item->drag.y = ev->y - (ev->y - _e_active_menu_item->y);
|
||||
_e_menu_deactivate_all();
|
||||
_e_active_menu_item->drag_cb.func(_e_active_menu_item->drag_cb.data, _e_active_menu_item->menu, _e_active_menu_item);
|
||||
}
|
||||
/* Either way, the maybe drag stops here. */
|
||||
_e_menu_activate_maybe_drag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
_e_menu_list_free_unref(tmp);
|
||||
|
|
Loading…
Reference in New Issue