From 6755cd5e9076a1d864a5f2fc65abeab007b170ad Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 20 Nov 2004 07:41:14 +0000 Subject: [PATCH] fix mouse grab accounting on delete and hide SVN revision: 12232 --- legacy/evas/src/lib/canvas/evas_object_main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c index 951c97a9c7..695abec8bf 100644 --- a/legacy/evas/src/lib/canvas/evas_object_main.c +++ b/legacy/evas/src/lib/canvas/evas_object_main.c @@ -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;