forked from enlightenment/efl
fix mouse grab accounting on delete and hide
SVN revision: 12232
This commit is contained in:
parent
54e855b83b
commit
6755cd5e90
|
@ -665,16 +665,24 @@ evas_object_hide(Evas_Object *obj)
|
||||||
evas_event_feed_mouse_move(obj->layer->evas,
|
evas_event_feed_mouse_move(obj->layer->evas,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y);
|
obj->layer->evas->pointer.y);
|
||||||
/* if ((obj->mouse_in) || (obj->mouse_grabbed)) */
|
if (obj->mouse_grabbed > 0)
|
||||||
|
{
|
||||||
|
if (obj->layer->evas->pointer.mouse_grabbed > 0)
|
||||||
|
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||||
|
}
|
||||||
{
|
{
|
||||||
obj->mouse_in = 0;
|
|
||||||
obj->mouse_grabbed = 0;
|
obj->mouse_grabbed = 0;
|
||||||
obj->layer->evas->pointer.object.in = evas_list_remove(obj->layer->evas->pointer.object.in, obj);
|
obj->layer->evas->pointer.object.in = evas_list_remove(obj->layer->evas->pointer.object.in, obj);
|
||||||
if (obj->layer->evas->events_frozen > 0) return;
|
if (obj->layer->evas->events_frozen > 0)
|
||||||
|
{
|
||||||
|
obj->mouse_in = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (obj->mouse_in)
|
if (obj->mouse_in)
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Out ev;
|
Evas_Event_Mouse_Out ev;
|
||||||
|
|
||||||
|
obj->mouse_in = 0;
|
||||||
ev.buttons = obj->layer->evas->pointer.button;
|
ev.buttons = obj->layer->evas->pointer.button;
|
||||||
ev.output.x = obj->layer->evas->pointer.x;
|
ev.output.x = obj->layer->evas->pointer.x;
|
||||||
ev.output.y = obj->layer->evas->pointer.y;
|
ev.output.y = obj->layer->evas->pointer.y;
|
||||||
|
|
Loading…
Reference in New Issue