summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/emotion/emotion_smart.c2
-rw-r--r--src/lib/evas/Evas_Legacy.h1
-rw-r--r--src/lib/evas/canvas/evas_clip.c2
-rw-r--r--src/lib/evas/canvas/evas_object_intercept.c17
-rw-r--r--src/lib/evas/canvas/evas_object_smart_clipped.c18
-rw-r--r--src/tests/evas/evas_test_mask.c8
6 files changed, 21 insertions, 27 deletions
diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c
index bc3a7eb8b6..5ea48bbcd8 100644
--- a/src/lib/emotion/emotion_smart.c
+++ b/src/lib/emotion/emotion_smart.c
@@ -2016,6 +2016,8 @@ _efl_canvas_video_efl_canvas_object_clip_set(Evas_Object *obj, Efl_Canvas_Video_
2016 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip)) 2016 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
2017 return; 2017 return;
2018 2018
2019 efl_canvas_object_clip_set(efl_super(obj, MY_CLASS), clip);
2020
2019 if (sd->crop.clipper) evas_object_clip_set(sd->crop.clipper, clip); 2021 if (sd->crop.clipper) evas_object_clip_set(sd->crop.clipper, clip);
2020 else evas_object_clip_set(sd->obj, clip); 2022 else evas_object_clip_set(sd->obj, clip);
2021 evas_object_clip_set(sd->bg, clip); 2023 evas_object_clip_set(sd->bg, clip);
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index f385d00a32..78653e78bd 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -2514,7 +2514,6 @@ enum _Evas_Object_Intercept_Cb_Type
2514 EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET, 2514 EVAS_OBJECT_INTERCEPT_CB_FOCUS_SET,
2515 EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 2515 EVAS_OBJECT_INTERCEPT_CB_COLOR_SET,
2516 EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 2516 EVAS_OBJECT_INTERCEPT_CB_CLIP_SET,
2517 EVAS_OBJECT_INTERCEPT_CB_CLIP_UNSET,
2518}; 2517};
2519typedef enum _Evas_Object_Intercept_Cb_Type Evas_Object_Intercept_Cb_Type; 2518typedef enum _Evas_Object_Intercept_Cb_Type Evas_Object_Intercept_Cb_Type;
2520 2519
diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c
index 1813696922..0f7be1b0fb 100644
--- a/src/lib/evas/canvas/evas_clip.c
+++ b/src/lib/evas/canvas/evas_clip.c
@@ -433,7 +433,7 @@ static void
433_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) 433_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
434{ 434{
435 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) return; 435 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) return;
436 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_UNSET, 1)) return; 436 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, NULL)) return;
437 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class && 437 if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class &&
438 obj->smart.smart->smart_class->clip_unset) 438 obj->smart.smart->smart_class->clip_unset)
439 { 439 {
diff --git a/src/lib/evas/canvas/evas_object_intercept.c b/src/lib/evas/canvas/evas_object_intercept.c
index 42b490e896..f4bbe9db6e 100644
--- a/src/lib/evas/canvas/evas_object_intercept.c
+++ b/src/lib/evas/canvas/evas_object_intercept.c
@@ -195,18 +195,17 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c
195 } 195 }
196 if (!obj->interceptors) goto end_noblock; 196 if (!obj->interceptors) goto end_noblock;
197 blocked = evas_object_intercept_call_clip_set(eo_obj, obj, eo_other); 197 blocked = evas_object_intercept_call_clip_set(eo_obj, obj, eo_other);
198 break;
199 } 198 }
200 // else: fallthrough to unset 199 else
201
202 case EVAS_OBJECT_INTERCEPT_CB_CLIP_UNSET:
203 if (!internal)
204 { 200 {
205 if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) 201 if (!internal)
206 goto end_block; 202 {
203 if (_efl_canvas_object_clip_unset_block(eo_obj, obj))
204 goto end_block;
205 }
206 if (!obj->interceptors) goto end_noblock;
207 blocked = evas_object_intercept_call_clip_unset(eo_obj, obj);
207 } 208 }
208 if (!obj->interceptors) goto end_noblock;
209 blocked = evas_object_intercept_call_clip_unset(eo_obj, obj);
210 break; 209 break;
211 } 210 }
212 211
diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c
index 8cbc5c539c..252709a02f 100644
--- a/src/lib/evas/canvas/evas_object_smart_clipped.c
+++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
@@ -166,18 +166,12 @@ evas_object_smart_clipped_smart_clip_unset(Evas_Object *eo_obj)
166EOLIAN static void 166EOLIAN static void
167_efl_canvas_group_clipped_efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *clip) 167_efl_canvas_group_clipped_efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *clip)
168{ 168{
169 if (clip) 169 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
170 { 170 return;
171 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip)) 171
172 return; 172 efl_canvas_object_clip_set(efl_super(eo_obj, MY_CLASS), clip);
173 evas_object_smart_clipped_smart_clip_set(eo_obj, clip); 173 if (clip) evas_object_smart_clipped_smart_clip_set(eo_obj, clip);
174 } 174 else evas_object_smart_clipped_smart_clip_unset(eo_obj);
175 else
176 {
177 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_UNSET, 0))
178 return;
179 evas_object_smart_clipped_smart_clip_unset(eo_obj);
180 }
181} 175}
182 176
183static void 177static void
diff --git a/src/tests/evas/evas_test_mask.c b/src/tests/evas/evas_test_mask.c
index d8b64d341a..b3dd17b42c 100644
--- a/src/tests/evas/evas_test_mask.c
+++ b/src/tests/evas/evas_test_mask.c
@@ -37,7 +37,7 @@
37static int 37static int
38_bgra_compare(unsigned int *data, unsigned int *ref, int w, int h) 38_bgra_compare(unsigned int *data, unsigned int *ref, int w, int h)
39{ 39{
40 int i,j; 40 int i, j, ret = 0;
41 for (j = 0; j < h; j++) 41 for (j = 0; j < h; j++)
42 { 42 {
43#if 0 43#if 0
@@ -50,12 +50,12 @@ _bgra_compare(unsigned int *data, unsigned int *ref, int w, int h)
50 for (i = 0; i < w; i++) 50 for (i = 0; i < w; i++)
51 if (data[i+j*w] != ref[i+j*w]) 51 if (data[i+j*w] != ref[i+j*w])
52 { 52 {
53 printf("Pixel %d differ: %#x vs. %#x\n", i+j*w, data[i+j*w], ref[i+j*w]); 53 printf("Pixel %2dx%-2d differ: %#x vs. %#x\n", i, j, data[i+j*w], ref[i+j*w]);
54 fflush(stdout); 54 fflush(stdout);
55 return 1; 55 ret = 1;
56 } 56 }
57 } 57 }
58 return 0; 58 return ret;
59} 59}
60 60
61// The usual useless unit test 61// The usual useless unit test