fix pointer staying in bug.

SVN revision: 15985
This commit is contained in:
Carsten Haitzler 2005-08-01 13:52:55 +00:00
parent 7864a1b7cc
commit 8f285156f3
1 changed files with 9 additions and 1 deletions

View File

@ -696,17 +696,18 @@ evas_object_hide(Evas_Object *obj)
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
NULL);
if (obj->delete_me) return;
if (obj->mouse_grabbed > 0)
{
if (obj->layer->evas->pointer.mouse_grabbed >= obj->mouse_grabbed)
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
}
{
obj->mouse_grabbed = 0;
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
{
obj->layer->evas->pointer.object.in = evas_list_remove(obj->layer->evas->pointer.object.in, obj);
}
obj->mouse_grabbed = 0;
if (obj->layer->evas->events_frozen > 0)
{
obj->mouse_in = 0;
@ -731,6 +732,13 @@ evas_object_hide(Evas_Object *obj)
}
}
}
else
{
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
obj->layer->evas->pointer.object.in = evas_list_remove(obj->layer->evas->pointer.object.in, obj);
obj->mouse_grabbed = 0;
obj->mouse_in = 0;
}
evas_object_inform_call_hide(obj);
}