fix mouse grab accounting on delete and hide

SVN revision: 12232
This commit is contained in:
Carsten Haitzler 2004-11-20 07:41:14 +00:00
parent 54e855b83b
commit 6755cd5e90
1 changed files with 11 additions and 3 deletions

View File

@ -665,16 +665,24 @@ evas_object_hide(Evas_Object *obj)
evas_event_feed_mouse_move(obj->layer->evas,
obj->layer->evas->pointer.x,
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->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)
{
Evas_Event_Mouse_Out ev;
obj->mouse_in = 0;
ev.buttons = obj->layer->evas->pointer.button;
ev.output.x = obj->layer->evas->pointer.x;
ev.output.y = obj->layer->evas->pointer.y;