From 8f285156f38d367179f7730eb99781ab5abf0d12 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 1 Aug 2005 13:52:55 +0000 Subject: [PATCH] fix pointer staying in bug. SVN revision: 15985 --- legacy/evas/src/lib/canvas/evas_object_main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c index da120eb514..bd0052dbff 100644 --- a/legacy/evas/src/lib/canvas/evas_object_main.c +++ b/legacy/evas/src/lib/canvas/evas_object_main.c @@ -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); }