diff options
author | ChunEon Park <hermet@hermet.pe.kr> | 2012-10-22 04:57:32 +0000 |
---|---|---|
committer | ChunEon Park <hermet@hermet.pe.kr> | 2012-10-22 04:57:32 +0000 |
commit | 916f9ce50c5dd98063811a0c6bdd4c478415ce2e (patch) | |
tree | f07a1d62acc838afff01cf291906e30c69af86b9 /legacy/evas | |
parent | bdc4de91cd88ab4c41e273d413bdaa91f9d88b49 (diff) |
evas/proxy - skip the events on invisible source obj.
SVN revision: 78313
Diffstat (limited to '')
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_events.c | 9 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_object_line.c | 6 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_object_main.c | 18 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_object_polygon.c | 6 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_object_text.c | 5 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_object_textgrid.c | 5 | ||||
-rw-r--r-- | legacy/evas/src/lib/canvas/evas_stack.c | 16 |
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 6f749cb82f..a41f5e3815 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 1575aed67e..9d10810153 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 cecc96f794..b7d9e88ad5 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 4b414818e2..7e4fb065f3 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 d4c9b55319..bb1ed2eafa 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 171485ff0b..3d26d75d8c 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 47f8cc18ef..eaae5030e4 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 | { |