diff --git a/legacy/evas/src/lib/canvas/evas_object_line.c b/legacy/evas/src/lib/canvas/evas_object_line.c index 670626304d..0cf9a2eea3 100644 --- a/legacy/evas/src/lib/canvas/evas_object_line.c +++ b/legacy/evas/src/lib/canvas/evas_object_line.c @@ -102,9 +102,10 @@ evas_object_line_xy_set(Evas_Object *obj, double x1, double y1, double x2, doubl MAGIC_CHECK_END(); if ((x1 == o->cur.x1) && (y1 == o->cur.y1) && (x2 == o->cur.x2) && (y2 == o->cur.y2)) return; - was = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); + if (!obj->pass_events) + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); if (x1 < x2) { min_x = x1; @@ -140,10 +141,13 @@ evas_object_line_xy_set(Evas_Object *obj, double x1, double y1, double x2, doubl is = evas_object_is_in_output_rect(obj, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, 1, 1); - if ((is ^ was) && obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + if (!obj->pass_events) + { + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } evas_object_inform_call_move(obj); evas_object_inform_call_resize(obj); } diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c index 93403482d2..aaa06b6535 100644 --- a/legacy/evas/src/lib/canvas/evas_object_main.c +++ b/legacy/evas/src/lib/canvas/evas_object_main.c @@ -455,23 +455,27 @@ evas_object_move(Evas_Object *obj, double x, double y) evas_object_inform_call_move(obj); return; } - was = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); + if (!obj->pass_events) + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); obj->cur.geometry.x = x; obj->cur.geometry.y = y; obj->cur.cache.geometry.validity = 0; evas_object_change(obj); evas_object_recalc_clippees(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - is = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); - if ((is ^ was) && obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } } evas_object_inform_call_move(obj); } @@ -503,23 +507,27 @@ evas_object_resize(Evas_Object *obj, double w, double h) evas_object_inform_call_resize(obj); return; } - was = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); + if (!obj->pass_events) + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); obj->cur.geometry.w = w; obj->cur.geometry.h = h; obj->cur.cache.geometry.validity = 0; evas_object_change(obj); evas_object_recalc_clippees(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - is = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); - if ((is ^ was) && (obj->cur.visible)) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && (obj->cur.visible)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } } } @@ -568,14 +576,17 @@ evas_object_show(Evas_Object *obj) obj->cur.visible = 1; evas_object_change(obj); evas_object_recalc_clippees(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - if (evas_object_is_in_output_rect(obj, + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1)) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + obj->layer->evas->pointer.y); + } } evas_object_inform_call_show(obj); } @@ -606,33 +617,36 @@ evas_object_hide(Evas_Object *obj) obj->cur.visible = 0; evas_object_change(obj); evas_object_recalc_clippees(obj); - if (!obj->smart.smart) - { - if (evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1)) - 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->pass_events) + { + if (!obj->smart.smart) { - 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->mouse_in) + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + 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)) */ { - Evas_Event_Mouse_Out ev; - - ev.buttons = obj->layer->evas->pointer.button; - ev.output.x = obj->layer->evas->pointer.x; - ev.output.y = obj->layer->evas->pointer.y; - ev.canvas.x = obj->layer->evas->pointer.canvas_x; - ev.canvas.y = obj->layer->evas->pointer.canvas_y; - ev.data = NULL; - ev.modifiers = &(obj->layer->evas->modifiers); - ev.locks = &(obj->layer->evas->locks); - evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + 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->mouse_in) + { + Evas_Event_Mouse_Out ev; + + ev.buttons = obj->layer->evas->pointer.button; + ev.output.x = obj->layer->evas->pointer.x; + ev.output.y = obj->layer->evas->pointer.y; + ev.canvas.x = obj->layer->evas->pointer.canvas_x; + ev.canvas.y = obj->layer->evas->pointer.canvas_y; + ev.data = NULL; + ev.modifiers = &(obj->layer->evas->modifiers); + ev.locks = &(obj->layer->evas->locks); + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + } } } } diff --git a/legacy/evas/src/lib/canvas/evas_object_polygon.c b/legacy/evas/src/lib/canvas/evas_object_polygon.c index 92d1ef4a9b..30dcef3d09 100644 --- a/legacy/evas/src/lib/canvas/evas_object_polygon.c +++ b/legacy/evas/src/lib/canvas/evas_object_polygon.c @@ -99,9 +99,10 @@ evas_object_polygon_point_add(Evas_Object *obj, double x, double y) MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON); return; MAGIC_CHECK_END(); - was = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); + if (!obj->pass_events) + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); p = malloc(sizeof(Evas_Polygon_Point)); if (!p) return; p->x = x; @@ -138,10 +139,13 @@ evas_object_polygon_point_add(Evas_Object *obj, double x, double y) is = evas_object_is_in_output_rect(obj, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, 1, 1); - if ((is ^ was) && obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + if (!obj->pass_events) + { + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } evas_object_inform_call_move(obj); evas_object_inform_call_resize(obj); } diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c index ef116d7955..db0cc0d1d4 100644 --- a/legacy/evas/src/lib/canvas/evas_object_text.c +++ b/legacy/evas/src/lib/canvas/evas_object_text.c @@ -502,9 +502,10 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, double size) same_font = 1; if (size == o->cur.size) return; } - was = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); + if (!obj->pass_events) + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); /* DO IT */ if (o->engine_data) obj->layer->evas->engine.func->font_free(obj->layer->evas->engine.data.output, @@ -583,13 +584,16 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, double size) o->changed = 1; evas_object_change(obj); evas_object_coords_recalc(obj); - is = evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1); - if ((is || was) && obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y); + if (!obj->pass_events) + { + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } evas_object_inform_call_resize(obj); } diff --git a/legacy/evas/src/lib/canvas/evas_stack.c b/legacy/evas/src/lib/canvas/evas_stack.c index c37c9d1160..d892b81379 100644 --- a/legacy/evas/src/lib/canvas/evas_stack.c +++ b/legacy/evas/src/lib/canvas/evas_stack.c @@ -73,13 +73,16 @@ evas_object_raise(Evas_Object *obj) } obj->restack = 1; evas_object_change(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - if (evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1) && - obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } } evas_object_inform_call_restack(obj); } @@ -116,13 +119,16 @@ evas_object_lower(Evas_Object *obj) } obj->restack = 1; evas_object_change(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - if (evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1) && - obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } } evas_object_inform_call_restack(obj); } @@ -167,13 +173,16 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above) } obj->restack = 1; evas_object_change(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - if (evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1) && - obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } } evas_object_inform_call_restack(obj); } @@ -218,13 +227,16 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below) } obj->restack = 1; evas_object_change(obj); - if (!obj->smart.smart) + if (!obj->pass_events) { - if (evas_object_is_in_output_rect(obj, - obj->layer->evas->pointer.x, - obj->layer->evas->pointer.y, 1, 1) && - obj->cur.visible) - evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } } evas_object_inform_call_restack(obj); }