summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-02-17 18:46:09 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-02-21 10:52:39 +0900
commit05cc5ab940caaf0612ac246c468fbb48144dbe02 (patch)
treeb67d08d2a5437eb58b1e40b52d4ba4449dbe4091 /src/lib
parent9dc0a15499578b618f8900981d735f2207102e5f (diff)
evas: Avoid useless calls to eo_data_scope_get
Use an internal variant of the function for evas when we already have the protected data pointer.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/evas/canvas/evas_clip.c4
-rw-r--r--src/lib/evas/canvas/evas_focus.c9
-rw-r--r--src/lib/evas/canvas/evas_layer.c6
-rw-r--r--src/lib/evas/canvas/evas_object_intercept.c87
-rw-r--r--src/lib/evas/canvas/evas_object_main.c8
-rw-r--r--src/lib/evas/canvas/evas_stack.c14
-rw-r--r--src/lib/evas/include/evas_private.h2
7 files changed, 74 insertions, 56 deletions
diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c
index 11d7c8e394..494e13d5d0 100644
--- a/src/lib/evas/canvas/evas_clip.c
+++ b/src/lib/evas/canvas/evas_clip.c
@@ -332,7 +332,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob
332 } 332 }
333 333
334 if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_clip, clip)) return; 334 if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_clip, clip)) return;
335 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, eo_clip)) return; 335 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, eo_clip)) return;
336 336
337 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class && 337 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class &&
338 obj->smart.smart->smart_class->clip_set) 338 obj->smart.smart->smart_class->clip_set)
@@ -430,7 +430,7 @@ static void
430_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) 430_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
431{ 431{
432 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) return; 432 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) return;
433 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, NULL)) return; 433 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, NULL)) return;
434 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class && 434 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class &&
435 obj->smart.smart->smart_class->clip_unset) 435 obj->smart.smart->smart_class->clip_unset)
436 { 436 {
diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c
index cae966a92e..d700e2cc49 100644
--- a/src/lib/evas/canvas/evas_focus.c
+++ b/src/lib/evas/canvas/evas_focus.c
@@ -134,9 +134,8 @@ _efl_canvas_object_seat_focus_del(Eo *eo_obj,
134 { 134 {
135 if (dev != seat) 135 if (dev != seat)
136 continue; 136 continue;
137 if (_evas_object_intercept_call(eo_obj, 137 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET,
138 EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET, 138 1, EINA_FALSE))
139 1, EINA_FALSE))
140 { 139 {
141 return EINA_FALSE; 140 return EINA_FALSE;
142 } 141 }
@@ -175,8 +174,8 @@ _efl_canvas_object_seat_focus_add(Eo *eo_obj,
175 if (_already_focused(obj->focused_by_seats, seat)) 174 if (_already_focused(obj->focused_by_seats, seat))
176 goto end; 175 goto end;
177 176
178 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET, 177 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET,
179 1, EINA_TRUE)) 178 1, EINA_TRUE))
180 { 179 {
181 return EINA_FALSE; 180 return EINA_FALSE;
182 } 181 }
diff --git a/src/lib/evas/canvas/evas_layer.c b/src/lib/evas/canvas/evas_layer.c
index 86496c47e7..11bbe033ac 100644
--- a/src/lib/evas/canvas/evas_layer.c
+++ b/src/lib/evas/canvas/evas_layer.c
@@ -216,15 +216,13 @@ evas_object_layer_set(Evas_Object *obj, short l)
216} 216}
217 217
218EOLIAN void 218EOLIAN void
219_efl_canvas_object_efl_gfx_stack_layer_set(Eo *eo_obj, 219_efl_canvas_object_efl_gfx_stack_layer_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, short l)
220 Evas_Object_Protected_Data *obj,
221 short l)
222{ 220{
223 Evas *eo_e; 221 Evas *eo_e;
224 222
225 if (obj->delete_me) return; 223 if (obj->delete_me) return;
226 evas_object_async_block(obj); 224 evas_object_async_block(obj);
227 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_LAYER_SET, 1, l)) return; 225 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_LAYER_SET, 1, l)) return;
228 if (obj->smart.parent) return; 226 if (obj->smart.parent) return;
229 if (obj->cur->layer == l) 227 if (obj->cur->layer == l)
230 { 228 {
diff --git a/src/lib/evas/canvas/evas_object_intercept.c b/src/lib/evas/canvas/evas_object_intercept.c
index faeedeedf7..da774e2b9c 100644
--- a/src/lib/evas/canvas/evas_object_intercept.c
+++ b/src/lib/evas/canvas/evas_object_intercept.c
@@ -82,31 +82,24 @@ EVAS_OBJECT_INTERCEPT_CALL(focus_set, (COMMON_ARGS, int focus), UNPACK_ARG1(fo
82EVAS_OBJECT_INTERCEPT_CALL(color_set, (COMMON_ARGS, int r, int g, int b, int a), UNPACK_ARG4(r, g, b, a)) 82EVAS_OBJECT_INTERCEPT_CALL(color_set, (COMMON_ARGS, int r, int g, int b, int a), UNPACK_ARG4(r, g, b, a))
83EVAS_OBJECT_INTERCEPT_CALL(clip_set, (COMMON_ARGS, Evas_Object *clip), UNPACK_ARG1(clip)) 83EVAS_OBJECT_INTERCEPT_CALL(clip_set, (COMMON_ARGS, Evas_Object *clip), UNPACK_ARG1(clip))
84 84
85 85static Eina_Bool
86/* This is a legacy-only compatibility function. 86_evas_object_intercept_call_internal(Evas_Object *eo_obj,
87 * Made public for other parts of EFL (elm, ecore_evas). 87 Evas_Object_Protected_Data *obj,
88 */ 88 Evas_Object_Intercept_Cb_Type cb_type,
89EWAPI Eina_Bool 89 int internal, va_list args)
90_evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type cb_type,
91 int internal, ...)
92{ 90{
93 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
94 Eina_Bool blocked = 0; 91 Eina_Bool blocked = 0;
95 Evas_Object *eo_other; 92 Evas_Object *eo_other;
96 int r, g, b, a, i, j; 93 int r, g, b, a, i, j;
97 va_list args;
98 94
99 EVAS_OBJECT_DATA_ALIVE_CHECK(obj, 1);
100 evas_object_async_block(obj); 95 evas_object_async_block(obj);
101 96
102 va_start(args, internal);
103
104 switch (cb_type) 97 switch (cb_type)
105 { 98 {
106 case EVAS_OBJECT_INTERCEPT_CB_VISIBLE: 99 case EVAS_OBJECT_INTERCEPT_CB_VISIBLE:
107 i = !!va_arg(args, int); 100 i = !!va_arg(args, int);
108 if (i == obj->cur->visible) goto end_block; 101 if (i == obj->cur->visible) return 1;
109 if (!obj->interceptors) goto end_noblock; 102 if (!obj->interceptors) return 0;
110 if (i) blocked = evas_object_intercept_call_show(eo_obj, obj); 103 if (i) blocked = evas_object_intercept_call_show(eo_obj, obj);
111 else blocked = evas_object_intercept_call_hide(eo_obj, obj); 104 else blocked = evas_object_intercept_call_hide(eo_obj, obj);
112 break; 105 break;
@@ -116,7 +109,7 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c
116 { 109 {
117 WRN("evas_object_move() called on object %p (%s) in the middle " 110 WRN("evas_object_move() called on object %p (%s) in the middle "
118 "of moving the same object", eo_obj, efl_class_name_get(eo_obj)); 111 "of moving the same object", eo_obj, efl_class_name_get(eo_obj));
119 goto end_block; 112 return 1;
120 } 113 }
121 i = va_arg(args, int); 114 i = va_arg(args, int);
122 j = va_arg(args, int); 115 j = va_arg(args, int);
@@ -133,47 +126,47 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c
133 i = va_arg(args, int); 126 i = va_arg(args, int);
134 j = va_arg(args, int); 127 j = va_arg(args, int);
135 if (_efl_canvas_object_efl_gfx_size_set_block(eo_obj, obj, i, j, internal)) 128 if (_efl_canvas_object_efl_gfx_size_set_block(eo_obj, obj, i, j, internal))
136 goto end_block; 129 return 1;
137 if (!obj->interceptors) goto end_noblock; 130 if (!obj->interceptors) return 0;
138 blocked = evas_object_intercept_call_resize(eo_obj, obj, i, j); 131 blocked = evas_object_intercept_call_resize(eo_obj, obj, i, j);
139 break; 132 break;
140 133
141 case EVAS_OBJECT_INTERCEPT_CB_RAISE: 134 case EVAS_OBJECT_INTERCEPT_CB_RAISE:
142 if (!obj->interceptors) goto end_noblock; 135 if (!obj->interceptors) return 0;
143 blocked = evas_object_intercept_call_raise(eo_obj, obj); 136 blocked = evas_object_intercept_call_raise(eo_obj, obj);
144 break; 137 break;
145 138
146 case EVAS_OBJECT_INTERCEPT_CB_LOWER: 139 case EVAS_OBJECT_INTERCEPT_CB_LOWER:
147 if (!obj->interceptors) goto end_noblock; 140 if (!obj->interceptors) return 0;
148 blocked = evas_object_intercept_call_lower(eo_obj, obj); 141 blocked = evas_object_intercept_call_lower(eo_obj, obj);
149 break; 142 break;
150 143
151 case EVAS_OBJECT_INTERCEPT_CB_STACK_ABOVE: 144 case EVAS_OBJECT_INTERCEPT_CB_STACK_ABOVE:
152 if (!obj->interceptors) goto end_noblock; 145 if (!obj->interceptors) return 0;
153 eo_other = va_arg(args, Evas_Object *); 146 eo_other = va_arg(args, Evas_Object *);
154 blocked = evas_object_intercept_call_stack_above(eo_obj, obj, eo_other); 147 blocked = evas_object_intercept_call_stack_above(eo_obj, obj, eo_other);
155 break; 148 break;
156 149
157 case EVAS_OBJECT_INTERCEPT_CB_STACK_BELOW: 150 case EVAS_OBJECT_INTERCEPT_CB_STACK_BELOW:
158 if (!obj->interceptors) goto end_noblock; 151 if (!obj->interceptors) return 0;
159 eo_other = va_arg(args, Evas_Object *); 152 eo_other = va_arg(args, Evas_Object *);
160 blocked = evas_object_intercept_call_stack_below(eo_obj, obj, eo_other); 153 blocked = evas_object_intercept_call_stack_below(eo_obj, obj, eo_other);
161 break; 154 break;
162 155
163 case EVAS_OBJECT_INTERCEPT_CB_LAYER_SET: 156 case EVAS_OBJECT_INTERCEPT_CB_LAYER_SET:
164 if (!obj->interceptors) goto end_noblock; 157 if (!obj->interceptors) return 0;
165 i = va_arg(args, int); 158 i = va_arg(args, int);
166 blocked = evas_object_intercept_call_layer_set(eo_obj, obj, i); 159 blocked = evas_object_intercept_call_layer_set(eo_obj, obj, i);
167 break; 160 break;
168 161
169 case EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET: 162 case EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET:
170 if (!obj->interceptors) goto end_noblock; 163 if (!obj->interceptors) return 0;
171 i = va_arg(args, int); 164 i = va_arg(args, int);
172 blocked = evas_object_intercept_call_focus_set(eo_obj, obj, !!i); 165 blocked = evas_object_intercept_call_focus_set(eo_obj, obj, !!i);
173 break; 166 break;
174 167
175 case EVAS_OBJECT_INTERCEPT_CB_COLOR_SET: 168 case EVAS_OBJECT_INTERCEPT_CB_COLOR_SET:
176 if (!obj->interceptors) goto end_noblock; 169 if (!obj->interceptors) return 0;
177 r = va_arg(args, int); 170 r = va_arg(args, int);
178 g = va_arg(args, int); 171 g = va_arg(args, int);
179 b = va_arg(args, int); 172 b = va_arg(args, int);
@@ -188,9 +181,9 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c
188 if (!internal) 181 if (!internal)
189 { 182 {
190 if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_other, NULL)) 183 if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_other, NULL))
191 goto end_block; 184 return 1;
192 } 185 }
193 if (!obj->interceptors) goto end_noblock; 186 if (!obj->interceptors) return 0;
194 blocked = evas_object_intercept_call_clip_set(eo_obj, obj, eo_other); 187 blocked = evas_object_intercept_call_clip_set(eo_obj, obj, eo_other);
195 } 188 }
196 else 189 else
@@ -198,24 +191,52 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c
198 if (!internal) 191 if (!internal)
199 { 192 {
200 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) 193 if (_efl_canvas_object_clip_unset_block(eo_obj, obj))
201 goto end_block; 194 return 1;
202 } 195 }
203 if (!obj->interceptors) goto end_noblock; 196 if (!obj->interceptors) return 0;
204 blocked = evas_object_intercept_call_clip_unset(eo_obj, obj); 197 blocked = evas_object_intercept_call_clip_unset(eo_obj, obj);
205 } 198 }
206 break; 199 break;
207 } 200 }
208 201
209 va_end(args);
210 return blocked; 202 return blocked;
203}
204
205/* This is a legacy-only compatibility function.
206 * Made public for other parts of EFL (elm, ecore_evas).
207 */
208EWAPI Eina_Bool
209_evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type cb_type,
210 int internal, ...)
211{
212 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
213 Eina_Bool ret;
214 va_list args;
215
216 EVAS_OBJECT_DATA_ALIVE_CHECK(obj, 1);
211 217
212end_block: 218 va_start(args, internal);
219 ret = _evas_object_intercept_call_internal(eo_obj, obj, cb_type, internal, args);
213 va_end(args); 220 va_end(args);
214 return 1;
215 221
216end_noblock: 222 return ret;
223}
224
225Eina_Bool
226_evas_object_intercept_call_evas(Evas_Object_Protected_Data *obj,
227 Evas_Object_Intercept_Cb_Type cb_type,
228 int internal, ...)
229{
230 Eina_Bool ret;
231 va_list args;
232
233 EVAS_OBJECT_DATA_ALIVE_CHECK(obj, 1);
234
235 va_start(args, internal);
236 ret = _evas_object_intercept_call_internal(obj->object, obj, cb_type, internal, args);
217 va_end(args); 237 va_end(args);
218 return 0; 238
239 return ret;
219} 240}
220 241
221/* public calls */ 242/* public calls */
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index b8f2a84c07..c6508766a2 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -1143,7 +1143,7 @@ _efl_canvas_object_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Protected_Data *
1143 Eina_Bool source_invisible = EINA_FALSE; 1143 Eina_Bool source_invisible = EINA_FALSE;
1144 Eina_List *was = NULL; 1144 Eina_List *was = NULL;
1145 1145
1146 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y)) 1146 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y))
1147 return; 1147 return;
1148 1148
1149 Evas_Map *map; 1149 Evas_Map *map;
@@ -1230,7 +1230,7 @@ _efl_canvas_object_efl_gfx_size_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
1230 if (w < 0) w = 0; 1230 if (w < 0) w = 0;
1231 if (h < 0) h = 0; 1231 if (h < 0) h = 0;
1232 1232
1233 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 1, w, h)) 1233 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 1, w, h))
1234 return; 1234 return;
1235 1235
1236 if (!(obj->layer->evas->is_frozen)) 1236 if (!(obj->layer->evas->is_frozen))
@@ -1818,7 +1818,7 @@ EOLIAN static void
1818_efl_canvas_object_efl_gfx_visible_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, 1818_efl_canvas_object_efl_gfx_visible_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
1819 Eina_Bool vis) 1819 Eina_Bool vis)
1820{ 1820{
1821 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_VISIBLE, 1, vis)) 1821 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_VISIBLE, 1, vis))
1822 return; 1822 return;
1823 1823
1824 if (vis) _show(eo_obj, obj); 1824 if (vis) _show(eo_obj, obj);
@@ -1850,7 +1850,7 @@ _efl_canvas_object_efl_gfx_color_set(Eo *eo_obj, Evas_Object_Protected_Data *obj
1850 if (EVAS_COLOR_SANITIZE(r, g, b, a)) 1850 if (EVAS_COLOR_SANITIZE(r, g, b, a))
1851 ERR("Evas only handles premultiplied colors (0 <= R,G,B <= A <= 255)"); 1851 ERR("Evas only handles premultiplied colors (0 <= R,G,B <= A <= 255)");
1852 1852
1853 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 1, r, g, b, a)) return; 1853 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 1, r, g, b, a)) return;
1854 if ((obj->cur->color.r == r) && 1854 if ((obj->cur->color.r == r) &&
1855 (obj->cur->color.g == g) && 1855 (obj->cur->color.g == g) &&
1856 (obj->cur->color.b == b) && 1856 (obj->cur->color.b == b) &&
diff --git a/src/lib/evas/canvas/evas_stack.c b/src/lib/evas/canvas/evas_stack.c
index 879dafdc38..55a46b0be4 100644
--- a/src/lib/evas/canvas/evas_stack.c
+++ b/src/lib/evas/canvas/evas_stack.c
@@ -46,8 +46,8 @@ evas_object_raise(Evas_Object *obj)
46EOLIAN void 46EOLIAN void
47_efl_canvas_object_efl_gfx_stack_raise(Eo *eo_obj, Evas_Object_Protected_Data *obj) 47_efl_canvas_object_efl_gfx_stack_raise(Eo *eo_obj, Evas_Object_Protected_Data *obj)
48{ 48{
49 evas_object_async_block(obj); 49 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_RAISE, 1))
50 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_RAISE, 1)) return; 50 return;
51 51
52 if (!((EINA_INLIST_GET(obj))->next)) 52 if (!((EINA_INLIST_GET(obj))->next))
53 { 53 {
@@ -95,8 +95,8 @@ evas_object_lower(Evas_Object *obj)
95EOLIAN void 95EOLIAN void
96_efl_canvas_object_efl_gfx_stack_lower(Eo *eo_obj, Evas_Object_Protected_Data *obj) 96_efl_canvas_object_efl_gfx_stack_lower(Eo *eo_obj, Evas_Object_Protected_Data *obj)
97{ 97{
98 evas_object_async_block(obj); 98 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_LOWER, 1))
99 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_LOWER, 1)) return; 99 return;
100 100
101 if (!((EINA_INLIST_GET(obj))->prev)) 101 if (!((EINA_INLIST_GET(obj))->prev))
102 { 102 {
@@ -145,14 +145,13 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above)
145EOLIAN void 145EOLIAN void
146_efl_canvas_object_efl_gfx_stack_stack_above(Eo *eo_obj, Evas_Object_Protected_Data *obj, Efl_Gfx_Stack *eo_above) 146_efl_canvas_object_efl_gfx_stack_stack_above(Eo *eo_obj, Evas_Object_Protected_Data *obj, Efl_Gfx_Stack *eo_above)
147{ 147{
148 evas_object_async_block(obj);
149 if (!eo_above) 148 if (!eo_above)
150 { 149 {
151 evas_object_raise(eo_obj); 150 evas_object_raise(eo_obj);
152 return; 151 return;
153 } 152 }
154 if (eo_obj == eo_above) return; 153 if (eo_obj == eo_above) return;
155 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_STACK_ABOVE, 1, eo_above)) return; 154 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_STACK_ABOVE, 1, eo_above)) return;
156 Evas_Object_Protected_Data *above = efl_data_scope_get(eo_above, EFL_CANVAS_OBJECT_CLASS); 155 Evas_Object_Protected_Data *above = efl_data_scope_get(eo_above, EFL_CANVAS_OBJECT_CLASS);
157 if ((EINA_INLIST_GET(obj))->prev == EINA_INLIST_GET(above)) 156 if ((EINA_INLIST_GET(obj))->prev == EINA_INLIST_GET(above))
158 { 157 {
@@ -223,14 +222,13 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below)
223EOLIAN void 222EOLIAN void
224_efl_canvas_object_efl_gfx_stack_stack_below(Eo *eo_obj, Evas_Object_Protected_Data *obj, Efl_Gfx_Stack *eo_below) 223_efl_canvas_object_efl_gfx_stack_stack_below(Eo *eo_obj, Evas_Object_Protected_Data *obj, Efl_Gfx_Stack *eo_below)
225{ 224{
226 evas_object_async_block(obj);
227 if (!eo_below) 225 if (!eo_below)
228 { 226 {
229 evas_object_lower(eo_obj); 227 evas_object_lower(eo_obj);
230 return; 228 return;
231 } 229 }
232 if (eo_obj == eo_below) return; 230 if (eo_obj == eo_below) return;
233 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_STACK_BELOW, 1, eo_below)) return; 231 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_STACK_BELOW, 1, eo_below)) return;
234 Evas_Object_Protected_Data *below = efl_data_scope_get(eo_below, EFL_CANVAS_OBJECT_CLASS); 232 Evas_Object_Protected_Data *below = efl_data_scope_get(eo_below, EFL_CANVAS_OBJECT_CLASS);
235 if ((EINA_INLIST_GET(obj))->next == EINA_INLIST_GET(below)) 233 if ((EINA_INLIST_GET(obj))->next == EINA_INLIST_GET(below))
236 { 234 {
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 7573acd610..0aad234a68 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1729,6 +1729,8 @@ void evas_text_style_pad_get(Evas_Text_Style_Type style, int *l, int *r, int *t,
1729void _evas_object_text_rehint(Evas_Object *obj); 1729void _evas_object_text_rehint(Evas_Object *obj);
1730void _evas_object_textblock_rehint(Evas_Object *obj); 1730void _evas_object_textblock_rehint(Evas_Object *obj);
1731 1731
1732Eina_Bool _evas_object_intercept_call_evas(Evas_Object_Protected_Data *obj, Evas_Object_Intercept_Cb_Type cb_type, int internal, ...);
1733
1732void evas_unref_queue_image_put(Evas_Public_Data *pd, void *image); 1734void evas_unref_queue_image_put(Evas_Public_Data *pd, void *image);
1733void evas_unref_queue_glyph_put(Evas_Public_Data *pd, void *glyph); 1735void evas_unref_queue_glyph_put(Evas_Public_Data *pd, void *glyph);
1734void evas_unref_queue_texts_put(Evas_Public_Data *pd, void *glyph); 1736void evas_unref_queue_texts_put(Evas_Public_Data *pd, void *glyph);