diff --git a/legacy/evas/src/evas_events.c b/legacy/evas/src/evas_events.c index 1b62eb24a3..0fe88d7bc8 100644 --- a/legacy/evas/src/evas_events.c +++ b/legacy/evas/src/evas_events.c @@ -106,7 +106,8 @@ evas_event_button_up(Evas e, int x, int y, int b) b, x, y); if (!e->mouse.buttons) { - if (e->mouse.object != e->mouse.button_object) + if ((e->mouse.button_object) && + (e->mouse.object != e->mouse.button_object)) _evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_OUT, e->mouse.buttons, e->mouse.x, e->mouse.y); e->mouse.button_object = NULL; diff --git a/legacy/evas/src/evas_object.c b/legacy/evas/src/evas_object.c index 06f44ba7f6..d6fe8c92d7 100644 --- a/legacy/evas/src/evas_object.c +++ b/legacy/evas/src/evas_object.c @@ -78,7 +78,7 @@ _evas_real_del_object(Evas e, Evas_Object o) layer->objects = evas_list_remove(layer->objects, o); _evas_callback_call(e, o, CALLBACK_FREE, 0, 0, 0); if (e->mouse.object == o) e->mouse.object = NULL; - if (e->mouse.button_object == o) e->mouse.object = NULL; + if (e->mouse.button_object == o) e->mouse.button_object = NULL; _evas_remove_callbacks(e, o); _evas_remove_data(e, o); if (o->name) free(o->name); @@ -103,7 +103,7 @@ _evas_layer_free(Evas e, Evas_Layer layer) o = l->data; _evas_callback_call(e, o, CALLBACK_FREE, 0, 0, 0); if (e->mouse.object == o) e->mouse.object = NULL; - if (e->mouse.button_object == o) e->mouse.object = NULL; + if (e->mouse.button_object == o) e->mouse.button_object = NULL; _evas_remove_callbacks(e, o); _evas_remove_data(e, o); o->object_renderer_data_free(e, o); @@ -507,7 +507,7 @@ evas_hide(Evas e, Evas_Object o) if (_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)) evas_event_move(e, e->mouse.x, e->mouse.y); if (e->mouse.object == o) e->mouse.object = NULL; - if (e->mouse.button_object == o) e->mouse.object = NULL; + if (e->mouse.button_object == o) e->mouse.button_object = NULL; } Evas_Object