diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -124,7 +124,8 @@ { if ((pdata->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas)) pdata->evas_pdata->seat->mouse_grabbed -= pdata->mouse_grabbed; - if (((pdata->mouse_in) || (pdata->mouse_grabbed > 0)) && + if (((pdata->mouse_in && pdata->evas_pdata->seat->mouse_grabbed == 0) || + (pdata->mouse_grabbed > 0)) && (obj->layer) && (obj->layer->evas)) { pdata->evas_pdata->seat->object.in = eina_list_remove(pdata->evas_pdata->seat->object.in, obj->object);