summaryrefslogtreecommitdiff
path: root/legacy/evas/src/lib
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2012-10-22 04:57:32 +0000
committerChunEon Park <hermet@hermet.pe.kr>2012-10-22 04:57:32 +0000
commit916f9ce50c5dd98063811a0c6bdd4c478415ce2e (patch)
treef07a1d62acc838afff01cf291906e30c69af86b9 /legacy/evas/src/lib
parentbdc4de91cd88ab4c41e273d413bdaa91f9d88b49 (diff)
evas/proxy - skip the events on invisible source obj.
SVN revision: 78313
Diffstat (limited to 'legacy/evas/src/lib')
-rw-r--r--legacy/evas/src/lib/canvas/evas_events.c9
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_line.c6
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_main.c18
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_polygon.c6
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_text.c5
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_textgrid.c5
-rw-r--r--legacy/evas/src/lib/canvas/evas_stack.c16
7 files changed, 47 insertions, 18 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_events.c b/legacy/evas/src/lib/canvas/evas_events.c
index 6f749cb..a41f5e3 100644
--- a/legacy/evas/src/lib/canvas/evas_events.c
+++ b/legacy/evas/src/lib/canvas/evas_events.c
@@ -60,6 +60,7 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
60 return in; 60 return in;
61 } 61 }
62 if (evas_event_passes_through(eo_obj, obj)) continue; 62 if (evas_event_passes_through(eo_obj, obj)) continue;
63 if (evas_object_is_source_invisible(eo_obj, obj)) continue;
63 if ((obj->cur.visible) && (obj->delete_me == 0) && 64 if ((obj->cur.visible) && (obj->delete_me == 0) &&
64 (!obj->clip.clipees) && 65 (!obj->clip.clipees) &&
65 (evas_object_clippers_is_visible(eo_obj, obj))) 66 (evas_object_clippers_is_visible(eo_obj, obj)))
@@ -827,6 +828,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list)
827 obj->mouse_grabbed) && 828 obj->mouse_grabbed) &&
828 (!evas_event_passes_through(eo_obj, obj)) && 829 (!evas_event_passes_through(eo_obj, obj)) &&
829 (!evas_event_freezes_through(eo_obj, obj)) && 830 (!evas_event_freezes_through(eo_obj, obj)) &&
831 (!evas_object_is_source_invisible(eo_obj, obj)) &&
830 (!obj->clip.clipees)) 832 (!obj->clip.clipees))
831 { 833 {
832 if ((px != x) || (py != y)) 834 if ((px != x) || (py != y))
@@ -968,6 +970,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list)
968 eina_list_data_find(ins, eo_obj) && 970 eina_list_data_find(ins, eo_obj) &&
969 (!evas_event_passes_through(eo_obj, obj)) && 971 (!evas_event_passes_through(eo_obj, obj)) &&
970 (!evas_event_freezes_through(eo_obj, obj)) && 972 (!evas_event_freezes_through(eo_obj, obj)) &&
973 (!evas_object_is_source_invisible(eo_obj, obj)) &&
971 (!obj->clip.clipees) && 974 (!obj->clip.clipees) &&
972 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y)) 975 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
973 ) 976 )
@@ -1141,6 +1144,7 @@ nogrep:
1141 eina_list_data_find(newin, eo_obj) && 1144 eina_list_data_find(newin, eo_obj) &&
1142 (!evas_event_passes_through(eo_obj, obj)) && 1145 (!evas_event_passes_through(eo_obj, obj)) &&
1143 (!evas_event_freezes_through(eo_obj, obj)) && 1146 (!evas_event_freezes_through(eo_obj, obj)) &&
1147 (!evas_object_is_source_invisible(eo_obj, obj)) &&
1144 (!obj->clip.clipees) && 1148 (!obj->clip.clipees) &&
1145 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y)) 1149 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
1146 ) 1150 )
@@ -1654,9 +1658,11 @@ _canvas_event_feed_multi_move(Eo *eo_e, void *_pd, va_list *list)
1654 { 1658 {
1655 Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS); 1659 Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
1656 if ((!e->is_frozen) && 1660 if ((!e->is_frozen) &&
1657 (evas_object_clippers_is_visible(eo_obj, obj) || obj->mouse_grabbed) && 1661 (evas_object_clippers_is_visible(eo_obj, obj) ||
1662 obj->mouse_grabbed) &&
1658 (!evas_event_passes_through(eo_obj, obj)) && 1663 (!evas_event_passes_through(eo_obj, obj)) &&
1659 (!evas_event_freezes_through(eo_obj, obj)) && 1664 (!evas_event_freezes_through(eo_obj, obj)) &&
1665 (!evas_object_is_source_invisible(eo_obj, obj)) &&
1660 (!obj->clip.clipees)) 1666 (!obj->clip.clipees))
1661 { 1667 {
1662 ev.cur.canvas.x = x; 1668 ev.cur.canvas.x = x;
@@ -1725,6 +1731,7 @@ _canvas_event_feed_multi_move(Eo *eo_e, void *_pd, va_list *list)
1725 eina_list_data_find(ins, eo_obj) && 1731 eina_list_data_find(ins, eo_obj) &&
1726 (!evas_event_passes_through(eo_obj, obj)) && 1732 (!evas_event_passes_through(eo_obj, obj)) &&
1727 (!evas_event_freezes_through(eo_obj, obj)) && 1733 (!evas_event_freezes_through(eo_obj, obj)) &&
1734 (!evas_object_is_source_invisible(eo_obj, obj)) &&
1728 (!obj->clip.clipees) && 1735 (!obj->clip.clipees) &&
1729 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y)) 1736 ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
1730 ) 1737 )
diff --git a/legacy/evas/src/lib/canvas/evas_object_line.c b/legacy/evas/src/lib/canvas/evas_object_line.c
index 1575aed..9d10810 100644
--- a/legacy/evas/src/lib/canvas/evas_object_line.c
+++ b/legacy/evas/src/lib/canvas/evas_object_line.c
@@ -113,7 +113,8 @@ _line_xy_set(Eo *eo_obj, void *_pd, va_list *list)
113 if (!(obj->layer->evas->is_frozen)) 113 if (!(obj->layer->evas->is_frozen))
114 { 114 {
115 if (!evas_event_passes_through(eo_obj, obj) && 115 if (!evas_event_passes_through(eo_obj, obj) &&
116 !evas_event_freezes_through(eo_obj, obj)) 116 !evas_event_freezes_through(eo_obj, obj) &&
117 !evas_object_is_source_invisible(eo_obj, obj))
117 was = evas_object_is_in_output_rect(eo_obj, obj, 118 was = evas_object_is_in_output_rect(eo_obj, obj,
118 obj->layer->evas->pointer.x, 119 obj->layer->evas->pointer.x,
119 obj->layer->evas->pointer.y, 120 obj->layer->evas->pointer.y,
@@ -158,7 +159,8 @@ _line_xy_set(Eo *eo_obj, void *_pd, va_list *list)
158 obj->layer->evas->pointer.x, 159 obj->layer->evas->pointer.x,
159 obj->layer->evas->pointer.y, 1, 1); 160 obj->layer->evas->pointer.y, 1, 1);
160 if (!evas_event_passes_through(eo_obj, obj) && 161 if (!evas_event_passes_through(eo_obj, obj) &&
161 !evas_event_freezes_through(eo_obj, obj)) 162 !evas_event_freezes_through(eo_obj, obj) &&
163 !evas_object_is_source_invisible(eo_obj, obj))
162 { 164 {
163 if ((is ^ was) && obj->cur.visible) 165 if ((is ^ was) && obj->cur.visible)
164 evas_event_feed_mouse_move(obj->layer->evas->evas, 166 evas_event_feed_mouse_move(obj->layer->evas->evas,
diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c
index cecc96f..b7d9e88 100644
--- a/legacy/evas/src/lib/canvas/evas_object_main.c
+++ b/legacy/evas/src/lib/canvas/evas_object_main.c
@@ -696,7 +696,7 @@ _position_set(Eo *eo_obj, void *_pd, va_list *list)
696 Evas_Coord y = va_arg(*list, Evas_Coord); 696 Evas_Coord y = va_arg(*list, Evas_Coord);
697 697
698 Evas_Public_Data *evas; 698 Evas_Public_Data *evas;
699 int is, was = 0, pass = 0, freeze = 0; 699 int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
700 int nx = 0, ny = 0; 700 int nx = 0, ny = 0;
701 701
702 if (obj->delete_me) return; 702 if (obj->delete_me) return;
@@ -729,7 +729,8 @@ _position_set(Eo *eo_obj, void *_pd, va_list *list)
729 { 729 {
730 pass = evas_event_passes_through(eo_obj, obj); 730 pass = evas_event_passes_through(eo_obj, obj);
731 freeze = evas_event_freezes_through(eo_obj, obj); 731 freeze = evas_event_freezes_through(eo_obj, obj);
732 if ((!pass) && (!freeze)) 732 source_invisible = evas_object_is_source_invisible(eo_obj, obj);
733 if ((!pass) && (!freeze) && (!source_invisible))
733 was = evas_object_is_in_output_rect(eo_obj, obj, 734 was = evas_object_is_in_output_rect(eo_obj, obj,
734 obj->layer->evas->pointer.x, 735 obj->layer->evas->pointer.x,
735 obj->layer->evas->pointer.y, 1, 1); 736 obj->layer->evas->pointer.y, 1, 1);
@@ -790,7 +791,7 @@ _size_set(Eo *eo_obj, void *_pd, va_list *list)
790 Evas_Coord w = va_arg(*list, Evas_Coord); 791 Evas_Coord w = va_arg(*list, Evas_Coord);
791 Evas_Coord h = va_arg(*list, Evas_Coord); 792 Evas_Coord h = va_arg(*list, Evas_Coord);
792 793
793 int is, was = 0, pass = 0, freeze =0; 794 int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
794 795
795 if (obj->delete_me) return; 796 if (obj->delete_me) return;
796 if (w < 0) w = 0; if (h < 0) h = 0; 797 if (w < 0) w = 0; if (h < 0) h = 0;
@@ -809,6 +810,7 @@ _size_set(Eo *eo_obj, void *_pd, va_list *list)
809 { 810 {
810 pass = evas_event_passes_through(eo_obj, obj); 811 pass = evas_event_passes_through(eo_obj, obj);
811 freeze = evas_event_freezes_through(eo_obj, obj); 812 freeze = evas_event_freezes_through(eo_obj, obj);
813 source_invisible = evas_object_is_source_invisible(eo_obj, obj);
812 if ((!pass) && (!freeze)) 814 if ((!pass) && (!freeze))
813 was = evas_object_is_in_output_rect(eo_obj, obj, 815 was = evas_object_is_in_output_rect(eo_obj, obj,
814 obj->layer->evas->pointer.x, 816 obj->layer->evas->pointer.x,
@@ -1403,7 +1405,8 @@ _show (Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1403 evas_object_clip_across_clippees_check(eo_obj, obj); 1405 evas_object_clip_across_clippees_check(eo_obj, obj);
1404 evas_object_recalc_clippees(eo_obj, obj); 1406 evas_object_recalc_clippees(eo_obj, obj);
1405 if ((!evas_event_passes_through(eo_obj, obj)) && 1407 if ((!evas_event_passes_through(eo_obj, obj)) &&
1406 (!evas_event_freezes_through(eo_obj, obj))) 1408 (!evas_event_freezes_through(eo_obj, obj)) &&
1409 (!evas_object_is_source_invisible(eo_obj, obj)))
1407 { 1410 {
1408 if (!obj->is_smart) 1411 if (!obj->is_smart)
1409 { 1412 {
@@ -1445,7 +1448,8 @@ _hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1445 evas_object_clip_across_clippees_check(eo_obj, obj); 1448 evas_object_clip_across_clippees_check(eo_obj, obj);
1446 evas_object_recalc_clippees(eo_obj, obj); 1449 evas_object_recalc_clippees(eo_obj, obj);
1447 if ((!evas_event_passes_through(eo_obj, obj)) && 1450 if ((!evas_event_passes_through(eo_obj, obj)) &&
1448 (!evas_event_freezes_through(eo_obj, obj))) 1451 (!evas_event_freezes_through(eo_obj, obj)) &&
1452 (!evas_object_is_source_invisible(eo_obj, obj)))
1449 { 1453 {
1450 if ((!obj->is_smart) || 1454 if ((!obj->is_smart) ||
1451 ((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap))) 1455 ((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
@@ -1833,6 +1837,7 @@ _canvas_object_top_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
1833 if (obj->delete_me) continue; 1837 if (obj->delete_me) continue;
1834 if ((!include_pass_events_objects) && 1838 if ((!include_pass_events_objects) &&
1835 (evas_event_passes_through(eo_obj, obj))) continue; 1839 (evas_event_passes_through(eo_obj, obj))) continue;
1840 if (evas_object_is_source_invisible(eo_obj, obj)) continue;
1836 if ((!include_hidden_objects) && (!obj->cur.visible)) continue; 1841 if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
1837 evas_object_clip_recalc(eo_obj, obj); 1842 evas_object_clip_recalc(eo_obj, obj);
1838 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) && 1843 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
@@ -1903,6 +1908,7 @@ _canvas_object_top_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *li
1903 if (obj->delete_me) continue; 1908 if (obj->delete_me) continue;
1904 if ((!include_pass_events_objects) && 1909 if ((!include_pass_events_objects) &&
1905 (evas_event_passes_through(eo_obj, obj))) continue; 1910 (evas_event_passes_through(eo_obj, obj))) continue;
1911 if (evas_object_is_source_invisible(eo_obj, obj)) continue;
1906 if ((!include_hidden_objects) && (!obj->cur.visible)) continue; 1912 if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
1907 evas_object_clip_recalc(eo_obj, obj); 1913 evas_object_clip_recalc(eo_obj, obj);
1908 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) && 1914 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
@@ -1957,6 +1963,7 @@ _canvas_objects_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
1957 if (obj->delete_me) continue; 1963 if (obj->delete_me) continue;
1958 if ((!include_pass_events_objects) && 1964 if ((!include_pass_events_objects) &&
1959 (evas_event_passes_through(eo_obj, obj))) continue; 1965 (evas_event_passes_through(eo_obj, obj))) continue;
1966 if (evas_object_is_source_invisible(eo_obj, obj)) continue;
1960 if ((!include_hidden_objects) && (!obj->cur.visible)) continue; 1967 if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
1961 evas_object_clip_recalc(eo_obj, obj); 1968 evas_object_clip_recalc(eo_obj, obj);
1962 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) && 1969 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
@@ -2028,6 +2035,7 @@ _canvas_objects_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
2028 if (obj->delete_me) continue; 2035 if (obj->delete_me) continue;
2029 if ((!include_pass_events_objects) && 2036 if ((!include_pass_events_objects) &&
2030 (evas_event_passes_through(eo_obj, obj))) continue; 2037 (evas_event_passes_through(eo_obj, obj))) continue;
2038 if (evas_object_is_source_invisible(eo_obj, obj)) continue;
2031 if ((!include_hidden_objects) && (!obj->cur.visible)) continue; 2039 if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
2032 evas_object_clip_recalc(eo_obj, obj); 2040 evas_object_clip_recalc(eo_obj, obj);
2033 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) && 2041 if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
diff --git a/legacy/evas/src/lib/canvas/evas_object_polygon.c b/legacy/evas/src/lib/canvas/evas_object_polygon.c
index 4b41481..7e4fb06 100644
--- a/legacy/evas/src/lib/canvas/evas_object_polygon.c
+++ b/legacy/evas/src/lib/canvas/evas_object_polygon.c
@@ -120,7 +120,8 @@ _polygon_point_add(Eo *eo_obj, void *_pd, va_list *list)
120 if (!obj->layer->evas->is_frozen) 120 if (!obj->layer->evas->is_frozen)
121 { 121 {
122 if (!evas_event_passes_through(eo_obj, obj) && 122 if (!evas_event_passes_through(eo_obj, obj) &&
123 !evas_event_freezes_through(eo_obj, obj)) 123 !evas_event_freezes_through(eo_obj, obj) &&
124 !evas_object_is_source_invisible(eo_obj, obj))
124 was = evas_object_is_in_output_rect(eo_obj, obj, 125 was = evas_object_is_in_output_rect(eo_obj, obj,
125 obj->layer->evas->pointer.x, 126 obj->layer->evas->pointer.x,
126 obj->layer->evas->pointer.y, 127 obj->layer->evas->pointer.y,
@@ -189,7 +190,8 @@ _polygon_point_add(Eo *eo_obj, void *_pd, va_list *list)
189 obj->layer->evas->pointer.x, 190 obj->layer->evas->pointer.x,
190 obj->layer->evas->pointer.y, 1, 1); 191 obj->layer->evas->pointer.y, 1, 1);
191 if (!evas_event_passes_through(eo_obj, obj) && 192 if (!evas_event_passes_through(eo_obj, obj) &&
192 !evas_event_freezes_through(eo_obj, obj) ) 193 !evas_event_freezes_through(eo_obj, obj) &&
194 !evas_object_is_source_invisible(eo_obj, obj))
193 { 195 {
194 if ((is ^ was) && obj->cur.visible) 196 if ((is ^ was) && obj->cur.visible)
195 evas_event_feed_mouse_move(obj->layer->evas->evas, 197 evas_event_feed_mouse_move(obj->layer->evas->evas,
diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c
index d4c9b55..bb1ed2e 100644
--- a/legacy/evas/src/lib/canvas/evas_object_text.c
+++ b/legacy/evas/src/lib/canvas/evas_object_text.c
@@ -346,7 +346,7 @@ static void
346_text_font_set(Eo *eo_obj, void *_pd, va_list *list) 346_text_font_set(Eo *eo_obj, void *_pd, va_list *list)
347{ 347{
348 Evas_Object_Text *o = _pd; 348 Evas_Object_Text *o = _pd;
349 int is, was = 0, pass = 0, freeze = 0; 349 int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
350 Evas_Font_Description *fdesc; 350 Evas_Font_Description *fdesc;
351 351
352 const char *font = va_arg(*list, const char*); 352 const char *font = va_arg(*list, const char*);
@@ -375,7 +375,8 @@ _text_font_set(Eo *eo_obj, void *_pd, va_list *list)
375 { 375 {
376 pass = evas_event_passes_through(eo_obj, obj); 376 pass = evas_event_passes_through(eo_obj, obj);
377 freeze = evas_event_freezes_through(eo_obj, obj); 377 freeze = evas_event_freezes_through(eo_obj, obj);
378 if ((!pass) && (!freeze)) 378 source_invisible = evas_object_is_source_invisible(eo_obj, obj);
379 if ((!pass) && (!freeze) && (!source_invisible))
379 was = evas_object_is_in_output_rect(eo_obj, obj, 380 was = evas_object_is_in_output_rect(eo_obj, obj,
380 obj->layer->evas->pointer.x, 381 obj->layer->evas->pointer.x,
381 obj->layer->evas->pointer.y, 1, 1); 382 obj->layer->evas->pointer.y, 1, 1);
diff --git a/legacy/evas/src/lib/canvas/evas_object_textgrid.c b/legacy/evas/src/lib/canvas/evas_object_textgrid.c
index 171485f..3d26d75 100644
--- a/legacy/evas/src/lib/canvas/evas_object_textgrid.c
+++ b/legacy/evas/src/lib/canvas/evas_object_textgrid.c
@@ -1078,7 +1078,7 @@ _font_set(Eo *eo_obj, void *_pd, va_list *list)
1078 Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS); 1078 Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
1079 const char *font_name = va_arg(*list, const char *); 1079 const char *font_name = va_arg(*list, const char *);
1080 Evas_Font_Size font_size = va_arg(*list, Evas_Font_Size); 1080 Evas_Font_Size font_size = va_arg(*list, Evas_Font_Size);
1081 int is, was = 0, pass = 0, freeze = 0; 1081 int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
1082 Evas_Font_Description *font_description; 1082 Evas_Font_Description *font_description;
1083 1083
1084 if ((!font_name) || (!*font_name) || (font_size <= 0)) 1084 if ((!font_name) || (!*font_name) || (font_size <= 0))
@@ -1107,7 +1107,8 @@ _font_set(Eo *eo_obj, void *_pd, va_list *list)
1107 { 1107 {
1108 pass = evas_event_passes_through(eo_obj, obj); 1108 pass = evas_event_passes_through(eo_obj, obj);
1109 freeze = evas_event_freezes_through(eo_obj, obj); 1109 freeze = evas_event_freezes_through(eo_obj, obj);
1110 if ((!pass) && (!freeze)) 1110 source_invisible = evas_object_is_source_invisible(eo_obj, obj);
1111 if ((!pass) && (!freeze) && (!source_invisible))
1111 was = evas_object_is_in_output_rect(eo_obj, obj, 1112 was = evas_object_is_in_output_rect(eo_obj, obj,
1112 obj->layer->evas->pointer.x, 1113 obj->layer->evas->pointer.x,
1113 obj->layer->evas->pointer.y, 1114 obj->layer->evas->pointer.y,
diff --git a/legacy/evas/src/lib/canvas/evas_stack.c b/legacy/evas/src/lib/canvas/evas_stack.c
index 47f8cc1..eaae503 100644
--- a/legacy/evas/src/lib/canvas/evas_stack.c
+++ b/legacy/evas/src/lib/canvas/evas_stack.c
@@ -74,7 +74,9 @@ _raise(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
74 evas_object_change(eo_obj, obj); 74 evas_object_change(eo_obj, obj);
75 evas_object_inform_call_restack(eo_obj); 75 evas_object_inform_call_restack(eo_obj);
76 if (obj->layer->evas->is_frozen) return; 76 if (obj->layer->evas->is_frozen) return;
77 if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj))) 77 if ((!evas_event_passes_through(eo_obj, obj)) &&
78 (!evas_event_freezes_through(eo_obj, obj)) &&
79 (!evas_object_is_source_invisible(eo_obj, obj)))
78 { 80 {
79 if (!obj->is_smart) 81 if (!obj->is_smart)
80 { 82 {
@@ -129,7 +131,9 @@ _lower(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
129 evas_object_change(eo_obj, obj); 131 evas_object_change(eo_obj, obj);
130 evas_object_inform_call_restack(eo_obj); 132 evas_object_inform_call_restack(eo_obj);
131 if (obj->layer->evas->is_frozen) return; 133 if (obj->layer->evas->is_frozen) return;
132 if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj))) 134 if ((!evas_event_passes_through(eo_obj, obj)) &&
135 (!evas_event_freezes_through(eo_obj, obj)) &&
136 (!evas_object_is_source_invisible(eo_obj, obj)))
133 { 137 {
134 if (!obj->is_smart) 138 if (!obj->is_smart)
135 { 139 {
@@ -214,7 +218,9 @@ _stack_above(Eo *eo_obj, void *_pd, va_list *list)
214 evas_object_change(eo_obj, obj); 218 evas_object_change(eo_obj, obj);
215 evas_object_inform_call_restack(eo_obj); 219 evas_object_inform_call_restack(eo_obj);
216 if (obj->layer->evas->is_frozen) return; 220 if (obj->layer->evas->is_frozen) return;
217 if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj))) 221 if ((!evas_event_passes_through(eo_obj, obj)) &&
222 (!evas_event_freezes_through(eo_obj, obj)) &&
223 (!evas_object_is_source_invisible(eo_obj, obj)))
218 { 224 {
219 if (!obj->is_smart) 225 if (!obj->is_smart)
220 { 226 {
@@ -299,7 +305,9 @@ _stack_below(Eo *eo_obj, void *_pd, va_list *list)
299 evas_object_change(eo_obj, obj); 305 evas_object_change(eo_obj, obj);
300 evas_object_inform_call_restack(eo_obj); 306 evas_object_inform_call_restack(eo_obj);
301 if (obj->layer->evas->is_frozen) return; 307 if (obj->layer->evas->is_frozen) return;
302 if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj))) 308 if ((!evas_event_passes_through(eo_obj, obj)) &&
309 (!evas_event_freezes_through(eo_obj, obj)) &&
310 (!evas_object_is_source_invisible(eo_obj, obj)))
303 { 311 {
304 if (!obj->is_smart) 312 if (!obj->is_smart)
305 { 313 {