fix ibar drop calc to not unexpectedly trigger epileptic seizures in users
when attempting to drop on an icon, the drop area geometry was never included in the calc, resulting in the drop changing between positions on every frame
This commit is contained in:
parent
6c7cbda881
commit
b4180e87fa
|
@ -1939,8 +1939,18 @@ _ibar_drop_position_update(Instance *inst, Evas_Coord x, Evas_Coord y)
|
|||
inst->ibar->dnd_x = x;
|
||||
inst->ibar->dnd_y = y;
|
||||
|
||||
if (inst->ibar->o_drop) e_box_unpack(inst->ibar->o_drop);
|
||||
ic = _ibar_icon_at_coord(inst->ibar, x, y);
|
||||
if (ic && (ic == inst->ibar->ic_drop_before)) return;
|
||||
|
||||
if (inst->ibar->o_drop)
|
||||
{
|
||||
int ox, oy, ow, oh;
|
||||
|
||||
evas_object_geometry_get(inst->ibar->o_drop, &ox, &oy, &ow, &oh);
|
||||
/* if cursor is still inside last drop area, do nothing */
|
||||
if (E_INSIDE(x, y, ox, oy, ow, oh)) return;
|
||||
e_box_unpack(inst->ibar->o_drop);
|
||||
}
|
||||
|
||||
inst->ibar->ic_drop_before = ic;
|
||||
if (ic)
|
||||
|
|
Loading…
Reference in New Issue