summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2012-08-26 07:04:46 +0000
committerTom Hacohen <tom@stosb.com>2012-08-26 07:04:46 +0000
commit77997affdaf1c4147f542cc905a32bce5146cfd4 (patch)
tree052955a660e6fc2e9d261ab529fb20f0b56530b4 /legacy
parent6e08ab829e6dabe93da9a4401777cbdf370c9037 (diff)
Evas: Revert "Evas: tabs --> spaces"
Lets wait until after the code freeze is over and people apply their patches, otherwise it'll be hellish. This reverts commit 75632 SVN revision: 75704
Diffstat (limited to 'legacy')
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_grid.c68
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_image.c720
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_main.c34
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_rectangle.c108
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_text.c248
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_textblock.c228
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_textgrid.c30
7 files changed, 718 insertions, 718 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_object_grid.c b/legacy/evas/src/lib/canvas/evas_object_grid.c
index 423c865634..c070b9cee9 100644
--- a/legacy/evas/src/lib/canvas/evas_object_grid.c
+++ b/legacy/evas/src/lib/canvas/evas_object_grid.c
@@ -39,27 +39,27 @@ struct _Evas_Object_Grid_Accessor
39 const Evas_Object *grid; 39 const Evas_Object *grid;
40}; 40};
41 41
42#define EVAS_OBJECT_GRID_DATA_GET(o, ptr) \ 42#define EVAS_OBJECT_GRID_DATA_GET(o, ptr) \
43 Evas_Object_Grid_Data *ptr = evas_object_smart_data_get(o) 43 Evas_Object_Grid_Data *ptr = evas_object_smart_data_get(o)
44 44
45#define EVAS_OBJECT_GRID_DATA_GET_OR_RETURN(o, ptr) \ 45#define EVAS_OBJECT_GRID_DATA_GET_OR_RETURN(o, ptr) \
46 EVAS_OBJECT_GRID_DATA_GET(o, ptr); \ 46 EVAS_OBJECT_GRID_DATA_GET(o, ptr); \
47 if (!ptr) \ 47 if (!ptr) \
48 { \ 48 { \
49 CRIT("no widget data for object %p (%s)", \ 49 CRIT("no widget data for object %p (%s)", \
50 o, evas_object_type_get(o)); \ 50 o, evas_object_type_get(o)); \
51 abort(); \ 51 abort(); \
52 return; \ 52 return; \
53 } 53 }
54 54
55#define EVAS_OBJECT_GRID_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ 55#define EVAS_OBJECT_GRID_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
56 EVAS_OBJECT_GRID_DATA_GET(o, ptr); \ 56 EVAS_OBJECT_GRID_DATA_GET(o, ptr); \
57 if (!ptr) \ 57 if (!ptr) \
58 { \ 58 { \
59 CRIT("No widget data for object %p (%s)", \ 59 CRIT("No widget data for object %p (%s)", \
60 o, evas_object_type_get(o)); \ 60 o, evas_object_type_get(o)); \
61 abort(); \ 61 abort(); \
62 return val; \ 62 return val; \
63 } 63 }
64 64
65static const char EVAS_OBJECT_GRID_OPTION_KEY[] = "|EvGd"; 65static const char EVAS_OBJECT_GRID_OPTION_KEY[] = "|EvGd";
@@ -152,8 +152,8 @@ _evas_object_grid_child_disconnect(Evas_Object *o, Evas_Object *child)
152} 152}
153 153
154EVAS_SMART_SUBCLASS_NEW("Evas_Object_Grid", _evas_object_grid, 154EVAS_SMART_SUBCLASS_NEW("Evas_Object_Grid", _evas_object_grid,
155 Evas_Smart_Class, Evas_Smart_Class, 155 Evas_Smart_Class, Evas_Smart_Class,
156 evas_object_smart_clipped_class_get, NULL) 156 evas_object_smart_clipped_class_get, NULL)
157 157
158static void 158static void
159_evas_object_grid_smart_add(Evas_Object *o) 159_evas_object_grid_smart_add(Evas_Object *o)
@@ -175,11 +175,11 @@ _evas_object_grid_smart_del(Evas_Object *o)
175 l = priv->children; 175 l = priv->children;
176 while (l) 176 while (l)
177 { 177 {
178 Evas_Object_Grid_Option *opt = l->data; 178 Evas_Object_Grid_Option *opt = l->data;
179 _evas_object_grid_child_disconnect(o, opt->obj); 179 _evas_object_grid_child_disconnect(o, opt->obj);
180 _evas_object_grid_option_del(opt->obj); 180 _evas_object_grid_option_del(opt->obj);
181 free(opt); 181 free(opt);
182 l = eina_list_remove_list(l, l); 182 l = eina_list_remove_list(l, l);
183 } 183 }
184 _evas_object_grid_parent_sc->del(o); 184 _evas_object_grid_parent_sc->del(o);
185} 185}
@@ -328,15 +328,15 @@ evas_object_grid_unpack(Evas_Object *o, Evas_Object *child)
328 328
329 if (o != evas_object_smart_parent_get(child)) 329 if (o != evas_object_smart_parent_get(child))
330 { 330 {
331 ERR("cannot unpack child from incorrect grid!"); 331 ERR("cannot unpack child from incorrect grid!");
332 return EINA_FALSE; 332 return EINA_FALSE;
333 } 333 }
334 334
335 opt = _evas_object_grid_option_del(child); 335 opt = _evas_object_grid_option_del(child);
336 if (!opt) 336 if (!opt)
337 { 337 {
338 ERR("cannot unpack child with no packing option!"); 338 ERR("cannot unpack child with no packing option!");
339 return EINA_FALSE; 339 return EINA_FALSE;
340 } 340 }
341 341
342 _evas_object_grid_child_disconnect(o, child); 342 _evas_object_grid_child_disconnect(o, child);
@@ -355,12 +355,12 @@ evas_object_grid_clear(Evas_Object *o, Eina_Bool clear)
355 355
356 EINA_LIST_FREE(priv->children, opt) 356 EINA_LIST_FREE(priv->children, opt)
357 { 357 {
358 _evas_object_grid_child_disconnect(o, opt->obj); 358 _evas_object_grid_child_disconnect(o, opt->obj);
359 _evas_object_grid_option_del(opt->obj); 359 _evas_object_grid_option_del(opt->obj);
360 evas_object_smart_member_del(opt->obj); 360 evas_object_smart_member_del(opt->obj);
361 if (clear) 361 if (clear)
362 evas_object_del(opt->obj); 362 evas_object_del(opt->obj);
363 free(opt); 363 free(opt);
364 } 364 }
365} 365}
366 366
diff --git a/legacy/evas/src/lib/canvas/evas_object_image.c b/legacy/evas/src/lib/canvas/evas_object_image.c
index 7e99d71363..a1c07906bd 100644
--- a/legacy/evas/src/lib/canvas/evas_object_image.c
+++ b/legacy/evas/src/lib/canvas/evas_object_image.c
@@ -32,11 +32,11 @@ struct _Evas_Object_Image
32 int spread; 32 int spread;
33 Evas_Coord_Rectangle fill; 33 Evas_Coord_Rectangle fill;
34 struct { 34 struct {
35 short w, h, stride; 35 short w, h, stride;
36 } image; 36 } image;
37 struct { 37 struct {
38 short l, r, t, b; 38 short l, r, t, b;
39 unsigned char fill; 39 unsigned char fill;
40 double scale; 40 double scale;
41 } border; 41 } border;
42 42
@@ -183,7 +183,7 @@ evas_object_image_add(Evas *e)
183 evas_object_inject(obj, e); 183 evas_object_inject(obj, e);
184 o = (Evas_Object_Image *)(obj->object_data); 184 o = (Evas_Object_Image *)(obj->object_data);
185 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, 185 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output,
186 o->engine_data); 186 o->engine_data);
187 return obj; 187 return obj;
188} 188}
189 189
@@ -332,17 +332,17 @@ evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key)
332 if ((o->tmpf) && (file != o->tmpf)) _cleanup_tmpf(obj); 332 if ((o->tmpf) && (file != o->tmpf)) _cleanup_tmpf(obj);
333 if ((o->cur.file) && (file) && (!strcmp(o->cur.file, file))) 333 if ((o->cur.file) && (file) && (!strcmp(o->cur.file, file)))
334 { 334 {
335 if ((!o->cur.key) && (!key)) 335 if ((!o->cur.key) && (!key))
336 return; 336 return;
337 if ((o->cur.key) && (key) && (!strcmp(o->cur.key, key))) 337 if ((o->cur.key) && (key) && (!strcmp(o->cur.key, key)))
338 return; 338 return;
339 } 339 }
340/* 340/*
341 * WTF? why cancel a null image preload? this is just silly (tm) 341 * WTF? why cancel a null image preload? this is just silly (tm)
342 if (!o->engine_data) 342 if (!o->engine_data)
343 obj->layer->evas->engine.func->image_data_preload_cancel(obj->layer->evas->engine.data.output, 343 obj->layer->evas->engine.func->image_data_preload_cancel(obj->layer->evas->engine.data.output,
344 o->engine_data, 344 o->engine_data,
345 obj); 345 obj);
346 */ 346 */
347 if (o->cur.source) _proxy_unset(obj); 347 if (o->cur.source) _proxy_unset(obj);
348 if (o->cur.file) eina_stringshare_del(o->cur.file); 348 if (o->cur.file) eina_stringshare_del(o->cur.file);
@@ -376,39 +376,39 @@ evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key)
376 lo.region.h = o->load_opts.region.h; 376 lo.region.h = o->load_opts.region.h;
377 lo.orientation = o->load_opts.orientation; 377 lo.orientation = o->load_opts.orientation;
378 o->engine_data = obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output, 378 o->engine_data = obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output,
379 o->cur.file, 379 o->cur.file,
380 o->cur.key, 380 o->cur.key,
381 &o->load_error, 381 &o->load_error,
382 &lo); 382 &lo);
383 if (o->engine_data) 383 if (o->engine_data)
384 { 384 {
385 int w, h; 385 int w, h;
386 int stride; 386 int stride;
387 387
388 obj->layer->evas->engine.func->image_size_get(obj->layer->evas->engine.data.output, 388 obj->layer->evas->engine.func->image_size_get(obj->layer->evas->engine.data.output,
389 o->engine_data, &w, &h); 389 o->engine_data, &w, &h);
390 if (obj->layer->evas->engine.func->image_stride_get) 390 if (obj->layer->evas->engine.func->image_stride_get)
391 obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, 391 obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
392 o->engine_data, &stride); 392 o->engine_data, &stride);
393 else 393 else
394 stride = w * 4; 394 stride = w * 4;
395 o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, 395 o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output,
396 o->engine_data); 396 o->engine_data);
397 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, 397 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output,
398 o->engine_data); 398 o->engine_data);
399 o->cur.image.w = w; 399 o->cur.image.w = w;
400 o->cur.image.h = h; 400 o->cur.image.h = h;
401 o->cur.image.stride = stride; 401 o->cur.image.stride = stride;
402 } 402 }
403 else 403 else
404 { 404 {
405 if (o->load_error == EVAS_LOAD_ERROR_NONE) 405 if (o->load_error == EVAS_LOAD_ERROR_NONE)
406 o->load_error = EVAS_LOAD_ERROR_GENERIC; 406 o->load_error = EVAS_LOAD_ERROR_GENERIC;
407 o->cur.has_alpha = 1; 407 o->cur.has_alpha = 1;
408 o->cur.cspace = EVAS_COLORSPACE_ARGB8888; 408 o->cur.cspace = EVAS_COLORSPACE_ARGB8888;
409 o->cur.image.w = 0; 409 o->cur.image.w = 0;
410 o->cur.image.h = 0; 410 o->cur.image.h = 0;
411 o->cur.image.stride = 0; 411 o->cur.image.stride = 0;
412 } 412 }
413 o->changed = 1; 413 o->changed = 1;
414 evas_object_change(obj); 414 evas_object_change(obj);
@@ -621,12 +621,12 @@ evas_object_image_filled_set(Evas_Object *obj, Eina_Bool setting)
621 evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE, evas_object_image_filled_resize_listener); 621 evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE, evas_object_image_filled_resize_listener);
622 else 622 else
623 { 623 {
624 Evas_Coord w, h; 624 Evas_Coord w, h;
625 625
626 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 626 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
627 evas_object_image_fill_set(obj, 0, 0, w, h); 627 evas_object_image_fill_set(obj, 0, 0, w, h);
628 628
629 evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, evas_object_image_filled_resize_listener, NULL); 629 evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, evas_object_image_filled_resize_listener, NULL);
630 } 630 }
631} 631}
632 632
@@ -825,8 +825,8 @@ evas_object_image_size_set(Evas_Object *obj, int w, int h)
825/* FIXME - in engine call above 825/* FIXME - in engine call above
826 if (o->engine_data) 826 if (o->engine_data)
827 o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, 827 o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
828 o->engine_data, 828 o->engine_data,
829 o->cur.has_alpha); 829 o->cur.has_alpha);
830*/ 830*/
831 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); 831 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o);
832 o->changed = 1; 832 o->changed = 1;
@@ -940,14 +940,14 @@ evas_object_image_data_set(Evas_Object *obj, void *data)
940 p_data = o->engine_data; 940 p_data = o->engine_data;
941 if (data) 941 if (data)
942 { 942 {
943 if (o->engine_data) 943 if (o->engine_data)
944 { 944 {
945 o->engine_data = 945 o->engine_data =
946 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output, 946 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
947 o->engine_data, 947 o->engine_data,
948 data); 948 data);
949 } 949 }
950 else 950 else
951 { 951 {
952 o->engine_data = 952 o->engine_data =
953 obj->layer->evas->engine.func->image_new_from_data(obj->layer->evas->engine.data.output, 953 obj->layer->evas->engine.func->image_new_from_data(obj->layer->evas->engine.data.output,
@@ -980,26 +980,26 @@ evas_object_image_data_set(Evas_Object *obj, void *data)
980 } 980 }
981 else 981 else
982 { 982 {
983 if (o->engine_data) 983 if (o->engine_data)
984 obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, 984 obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output,
985 o->engine_data); 985 o->engine_data);
986 o->load_error = EVAS_LOAD_ERROR_NONE; 986 o->load_error = EVAS_LOAD_ERROR_NONE;
987 o->cur.image.w = 0; 987 o->cur.image.w = 0;
988 o->cur.image.h = 0; 988 o->cur.image.h = 0;
989 o->cur.image.stride = 0; 989 o->cur.image.stride = 0;
990 o->engine_data = NULL; 990 o->engine_data = NULL;
991 } 991 }
992/* FIXME - in engine call above 992/* FIXME - in engine call above
993 if (o->engine_data) 993 if (o->engine_data)
994 o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, 994 o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
995 o->engine_data, 995 o->engine_data,
996 o->cur.has_alpha); 996 o->cur.has_alpha);
997*/ 997*/
998 if (o->pixels_checked_out > 0) o->pixels_checked_out--; 998 if (o->pixels_checked_out > 0) o->pixels_checked_out--;
999 if (p_data != o->engine_data) 999 if (p_data != o->engine_data)
1000 { 1000 {
1001 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); 1001 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o);
1002 o->pixels_checked_out = 0; 1002 o->pixels_checked_out = 0;
1003 } 1003 }
1004 o->changed = 1; 1004 o->changed = 1;
1005 evas_object_change(obj); 1005 evas_object_change(obj);
@@ -1053,7 +1053,7 @@ evas_object_image_data_get(const Evas_Object *obj, Eina_Bool for_writing)
1053 o->pixels_checked_out++; 1053 o->pixels_checked_out++;
1054 if (for_writing) 1054 if (for_writing)
1055 { 1055 {
1056 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); 1056 EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o);
1057 } 1057 }
1058 1058
1059 return data; 1059 return data;
@@ -1074,8 +1074,8 @@ evas_object_image_preload(Evas_Object *obj, Eina_Bool cancel)
1074 if (!o->engine_data) 1074 if (!o->engine_data)
1075 { 1075 {
1076 o->preloading = 1; 1076 o->preloading = 1;
1077 evas_object_inform_call_image_preloaded(obj); 1077 evas_object_inform_call_image_preloaded(obj);
1078 return; 1078 return;
1079 } 1079 }
1080 // FIXME: if already busy preloading, then dont request again until 1080 // FIXME: if already busy preloading, then dont request again until
1081 // preload done 1081 // preload done
@@ -1119,7 +1119,7 @@ evas_object_image_data_copy_set(Evas_Object *obj, void *data)
1119 (o->cur.image.h <= 0)) return; 1119 (o->cur.image.h <= 0)) return;
1120 if (o->engine_data) 1120 if (o->engine_data)
1121 obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, 1121 obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output,
1122 o->engine_data); 1122 o->engine_data);
1123 o->engine_data = 1123 o->engine_data =
1124 obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output, 1124 obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output,
1125 o->cur.image.w, 1125 o->cur.image.w,
@@ -1328,27 +1328,27 @@ evas_object_image_save(const Evas_Object *obj, const char *file, const char *key
1328 1328
1329 if (!o->engine_data) return 0; 1329 if (!o->engine_data) return 0;
1330 o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, 1330 o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
1331 o->engine_data, 1331 o->engine_data,
1332 0, 1332 0,
1333 &data, 1333 &data,
1334 &o->load_error); 1334 &o->load_error);
1335 if (flags) 1335 if (flags)
1336 { 1336 {
1337 char *p, *pp; 1337 char *p, *pp;
1338 char *tflags; 1338 char *tflags;
1339 1339
1340 tflags = alloca(strlen(flags) + 1); 1340 tflags = alloca(strlen(flags) + 1);
1341 strcpy(tflags, flags); 1341 strcpy(tflags, flags);
1342 p = tflags; 1342 p = tflags;
1343 while (p) 1343 while (p)
1344 { 1344 {
1345 pp = strchr(p, ' '); 1345 pp = strchr(p, ' ');
1346 if (pp) *pp = 0; 1346 if (pp) *pp = 0;
1347 sscanf(p, "quality=%i", &quality); 1347 sscanf(p, "quality=%i", &quality);
1348 sscanf(p, "compress=%i", &compress); 1348 sscanf(p, "compress=%i", &compress);
1349 if (pp) p = pp + 1; 1349 if (pp) p = pp + 1;
1350 else break; 1350 else break;
1351 } 1351 }
1352 } 1352 }
1353 im = (RGBA_Image*) evas_cache_image_data(evas_common_image_cache_get(), 1353 im = (RGBA_Image*) evas_cache_image_data(evas_common_image_cache_get(),
1354 o->cur.image.w, 1354 o->cur.image.w,
@@ -1358,21 +1358,21 @@ evas_object_image_save(const Evas_Object *obj, const char *file, const char *key
1358 EVAS_COLORSPACE_ARGB8888); 1358 EVAS_COLORSPACE_ARGB8888);
1359 if (im) 1359 if (im)
1360 { 1360 {
1361 if (o->cur.cspace == EVAS_COLORSPACE_ARGB8888) 1361 if (o->cur.cspace == EVAS_COLORSPACE_ARGB8888)
1362 im->image.data = data; 1362 im->image.data = data;
1363 else 1363 else
1364 im->image.data = evas_object_image_data_convert_internal(o, 1364 im->image.data = evas_object_image_data_convert_internal(o,
1365 data, 1365 data,
1366 EVAS_COLORSPACE_ARGB8888); 1366 EVAS_COLORSPACE_ARGB8888);
1367 if (im->image.data) 1367 if (im->image.data)
1368 { 1368 {
1369 ok = evas_common_save_image_to_file(im, file, key, quality, compress); 1369 ok = evas_common_save_image_to_file(im, file, key, quality, compress);
1370 1370
1371 if (o->cur.cspace != EVAS_COLORSPACE_ARGB8888) 1371 if (o->cur.cspace != EVAS_COLORSPACE_ARGB8888)
1372 free(im->image.data); 1372 free(im->image.data);
1373 } 1373 }
1374 1374
1375 evas_cache_image_drop(&im->cache_entry); 1375 evas_cache_image_drop(&im->cache_entry);
1376 } 1376 }
1377 o->engine_data = obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output, 1377 o->engine_data = obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
1378 o->engine_data, 1378 o->engine_data,
@@ -1398,72 +1398,72 @@ evas_object_image_pixels_import(Evas_Object *obj, Evas_Pixel_Import_Source *pixe
1398 { 1398 {
1399#if 0 1399#if 0
1400 case EVAS_PIXEL_FORMAT_ARGB32: 1400 case EVAS_PIXEL_FORMAT_ARGB32:
1401 { 1401 {
1402 if (o->engine_data) 1402 if (o->engine_data)
1403 { 1403 {
1404 DATA32 *image_pixels = NULL; 1404 DATA32 *image_pixels = NULL;
1405 1405
1406 o->engine_data = 1406 o->engine_data =
1407 obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, 1407 obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
1408 o->engine_data, 1408 o->engine_data,
1409 1, 1409 1,
1410 &image_pixels, 1410 &image_pixels,
1411 &o->load_error); 1411 &o->load_error);
1412/* FIXME: need to actualyl support this */ 1412/* FIXME: need to actualyl support this */
1413/* memcpy(image_pixels, pixels->rows, o->cur.image.w * o->cur.image.h * 4);*/ 1413/* memcpy(image_pixels, pixels->rows, o->cur.image.w * o->cur.image.h * 4);*/
1414 if (o->engine_data) 1414 if (o->engine_data)
1415 o->engine_data = 1415 o->engine_data =
1416 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output, 1416 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
1417 o->engine_data, 1417 o->engine_data,
1418 image_pixels); 1418 image_pixels);
1419 if (o->engine_data) 1419 if (o->engine_data)
1420 o->engine_data = 1420 o->engine_data =
1421 obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, 1421 obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
1422 o->engine_data, 1422 o->engine_data,
1423 o->cur.has_alpha); 1423 o->cur.has_alpha);
1424 o->changed = 1; 1424 o->changed = 1;
1425 evas_object_change(obj); 1425 evas_object_change(obj);
1426 } 1426 }
1427 } 1427 }
1428 break; 1428 break;
1429#endif 1429#endif
1430#ifdef BUILD_CONVERT_YUV 1430#ifdef BUILD_CONVERT_YUV
1431 case EVAS_PIXEL_FORMAT_YUV420P_601: 1431 case EVAS_PIXEL_FORMAT_YUV420P_601:
1432 { 1432 {
1433 if (o->engine_data) 1433 if (o->engine_data)
1434 { 1434 {
1435 DATA32 *image_pixels = NULL; 1435 DATA32 *image_pixels = NULL;
1436 1436
1437 o->engine_data = 1437 o->engine_data =
1438 obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, 1438 obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
1439 o->engine_data, 1439 o->engine_data,
1440 1, 1440 1,
1441 &image_pixels, 1441 &image_pixels,
1442 &o->load_error); 1442 &o->load_error);
1443 if (image_pixels) 1443 if (image_pixels)
1444 evas_common_convert_yuv_420p_601_rgba((DATA8 **) pixels->rows, 1444 evas_common_convert_yuv_420p_601_rgba((DATA8 **) pixels->rows,
1445 (DATA8 *) image_pixels, 1445 (DATA8 *) image_pixels,
1446 o->cur.image.w, 1446 o->cur.image.w,
1447 o->cur.image.h); 1447 o->cur.image.h);
1448 if (o->engine_data) 1448 if (o->engine_data)
1449 o->engine_data = 1449 o->engine_data =
1450 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output, 1450 obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
1451 o->engine_data, 1451 o->engine_data,
1452 image_pixels); 1452 image_pixels);
1453 if (o->engine_data) 1453 if (o->engine_data)
1454 o->engine_data = 1454 o->engine_data =
1455 obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, 1455 obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
1456 o->engine_data, 1456 o->engine_data,
1457 o->cur.has_alpha); 1457 o->cur.has_alpha);
1458 o->changed = 1; 1458 o->changed = 1;
1459 evas_object_change(obj); 1459 evas_object_change(obj);
1460 } 1460 }
1461 } 1461 }
1462 break; 1462 break;
1463#endif 1463#endif
1464 default: 1464 default:
1465 return 0; 1465 return 0;
1466 break; 1466 break;
1467 } 1467 }
1468 return 1; 1468 return 1;
1469} 1469}
@@ -1534,11 +1534,11 @@ evas_object_image_load_dpi_set(Evas_Object *obj, double dpi)
1534 o->load_opts.dpi = dpi; 1534 o->load_opts.dpi = dpi;
1535 if (o->cur.file) 1535 if (o->cur.file)
1536 { 1536 {
1537 evas_object_image_unload(obj, 0); 1537 evas_object_image_unload(obj, 0);
1538 evas_object_inform_call_image_unloaded(obj); 1538 evas_object_inform_call_image_unloaded(obj);
1539 evas_object_image_load(obj); 1539 evas_object_image_load(obj);
1540 o->changed = 1; 1540 o->changed = 1;
1541 evas_object_change(obj); 1541 evas_object_change(obj);
1542 } 1542 }
1543} 1543}
1544 1544
@@ -1574,11 +1574,11 @@ evas_object_image_load_size_set(Evas_Object *obj, int w, int h)
1574 o->load_opts.h = h; 1574 o->load_opts.h = h;
1575 if (o->cur.file) 1575 if (o->cur.file)
1576 { 1576 {
1577 evas_object_image_unload(obj, 0); 1577 evas_object_image_unload(obj, 0);
1578 evas_object_inform_call_image_unloaded(obj); 1578 evas_object_inform_call_image_unloaded(obj);
1579 evas_object_image_load(obj); 1579 evas_object_image_load(obj);
1580 o->changed = 1; 1580 o->changed = 1;
1581 evas_object_change(obj); 1581 evas_object_change(obj);
1582 } 1582 }
1583} 1583}
1584 1584
@@ -1614,11 +1614,11 @@ evas_object_image_load_scale_down_set(Evas_Object *obj, int scale_down)
1614 o->load_opts.scale_down_by = scale_down; 1614 o->load_opts.scale_down_by = scale_down;
1615 if (o->cur.file) 1615 if (o->cur.file)
1616 { 1616 {
1617 evas_object_image_unload(obj, 0); 1617 evas_object_image_unload(obj, 0);
1618 evas_object_inform_call_image_unloaded(obj); 1618 evas_object_inform_call_image_unloaded(obj);
1619 evas_object_image_load(obj); 1619 evas_object_image_load(obj);
1620 o->changed = 1; 1620 o->changed = 1;
1621 evas_object_change(obj); 1621 evas_object_change(obj);
1622 } 1622 }
1623} 1623}
1624 1624
@@ -1657,11 +1657,11 @@ evas_object_image_load_region_set(Evas_Object *obj, int x, int y, int w, int h)
1657 o->load_opts.region.h = h; 1657 o->load_opts.region.h = h;
1658 if (o->cur.file) 1658 if (o->cur.file)
1659 { 1659 {
1660 evas_object_image_unload(obj, 0); 1660 evas_object_image_unload(obj, 0);
1661 evas_object_inform_call_image_unloaded(obj); 1661 evas_object_inform_call_image_unloaded(obj);
1662 evas_object_image_load(obj); 1662 evas_object_image_load(obj);
1663 o->changed = 1; 1663 o->changed = 1;
1664 evas_object_change(obj); 1664 evas_object_change(obj);
1665 } 1665 }
1666} 1666}
1667 1667
@@ -1731,8 +1731,8 @@ evas_object_image_colorspace_set(Evas_Object *obj, Evas_Colorspace cspace)
1731 o->cur.cspace = cspace; 1731 o->cur.cspace = cspace;
1732 if (o->engine_data) 1732 if (o->engine_data)
1733 obj->layer->evas->engine.func->image_colorspace_set(obj->layer->evas->engine.data.output, 1733 obj->layer->evas->engine.func->image_colorspace_set(obj->layer->evas->engine.data.output,
1734 o->engine_data, 1734 o->engine_data,
1735 cspace); 1735 cspace);
1736} 1736}
1737 1737
1738EAPI Evas_Colorspace 1738EAPI Evas_Colorspace
@@ -1766,35 +1766,35 @@ evas_object_image_video_surface_set(Evas_Object *obj, Evas_Video_Surface *surf)
1766 if (o->video_surface) 1766 if (o->video_surface)
1767 { 1767 {
1768 o->video_surface = 0; 1768 o->video_surface = 0;
1769 obj->layer->evas->video_objects = eina_list_remove(obj->layer->evas->video_objects, obj); 1769 obj->layer->evas->video_objects = eina_list_remove(obj->layer->evas->video_objects, obj);
1770 } 1770 }
1771 1771
1772 if (surf) 1772 if (surf)
1773 { 1773 {
1774 if (surf->version != EVAS_VIDEO_SURFACE_VERSION) return ; 1774 if (surf->version != EVAS_VIDEO_SURFACE_VERSION) return ;
1775 1775
1776 if (!surf->update_pixels || 1776 if (!surf->update_pixels ||
1777 !surf->move || 1777 !surf->move ||
1778 !surf->resize || 1778 !surf->resize ||
1779 !surf->hide || 1779 !surf->hide ||
1780 !surf->show) 1780 !surf->show)
1781 return ; 1781 return ;
1782 1782
1783 o->created = EINA_TRUE; 1783 o->created = EINA_TRUE;
1784 o->video_surface = 1; 1784 o->video_surface = 1;
1785 o->video = *surf; 1785 o->video = *surf;
1786 1786
1787 obj->layer->evas->video_objects = eina_list_append(obj->layer->evas->video_objects, obj); 1787 obj->layer->evas->video_objects = eina_list_append(obj->layer->evas->video_objects, obj);
1788 } 1788 }
1789 else 1789 else
1790 { 1790 {
1791 o->video_surface = 0; 1791 o->video_surface = 0;
1792 o->video.update_pixels = NULL; 1792 o->video.update_pixels = NULL;
1793 o->video.move = NULL; 1793 o->video.move = NULL;
1794 o->video.resize = NULL; 1794 o->video.resize = NULL;
1795 o->video.hide = NULL; 1795 o->video.hide = NULL;
1796 o->video.show = NULL; 1796 o->video.show = NULL;
1797 o->video.data = NULL; 1797 o->video.data = NULL;
1798 } 1798 }
1799} 1799}
1800 1800
@@ -1851,7 +1851,7 @@ evas_object_image_native_surface_get(const Evas_Object *obj)
1851 MAGIC_CHECK_END(); 1851 MAGIC_CHECK_END();
1852 if (!obj->layer->evas->engine.func->image_native_get) return NULL; 1852 if (!obj->layer->evas->engine.func->image_native_get) return NULL;
1853 return obj->layer->evas->engine.func->image_native_get(obj->layer->evas->engine.data.output, 1853 return obj->layer->evas->engine.func->image_native_get(obj->layer->evas->engine.data.output,
1854 o->engine_data); 1854 o->engine_data);
1855} 1855}
1856 1856
1857EAPI void 1857EAPI void
@@ -2154,37 +2154,37 @@ evas_image_cache_reload(Evas *e)
2154 evas_image_cache_flush(e); 2154 evas_image_cache_flush(e);
2155 EINA_INLIST_FOREACH(e->layers, layer) 2155 EINA_INLIST_FOREACH(e->layers, layer)
2156 { 2156 {
2157 Evas_Object *obj; 2157 Evas_Object *obj;
2158 2158
2159 EINA_INLIST_FOREACH(layer->objects, obj) 2159 EINA_INLIST_FOREACH(layer->objects, obj)
2160 { 2160 {
2161 Evas_Object_Image *o; 2161 Evas_Object_Image *o;
2162 2162
2163 o = (Evas_Object_Image *)(obj->object_data); 2163 o = (Evas_Object_Image *)(obj->object_data);
2164 if (o->magic == MAGIC_OBJ_IMAGE) 2164 if (o->magic == MAGIC_OBJ_IMAGE)
2165 { 2165 {
2166 evas_object_image_unload(obj, 1); 2166 evas_object_image_unload(obj, 1);
2167 evas_object_inform_call_image_unloaded(obj); 2167 evas_object_inform_call_image_unloaded(obj);
2168 } 2168 }
2169 } 2169 }
2170 } 2170 }
2171 evas_image_cache_flush(e); 2171 evas_image_cache_flush(e);
2172 EINA_INLIST_FOREACH(e->layers, layer) 2172 EINA_INLIST_FOREACH(e->layers, layer)
2173 { 2173 {
2174 Evas_Object *obj; 2174 Evas_Object *obj;
2175 2175
2176 EINA_INLIST_FOREACH(layer->objects, obj) 2176 EINA_INLIST_FOREACH(layer->objects, obj)
2177 { 2177 {
2178 Evas_Object_Image *o; 2178 Evas_Object_Image *o;
2179 2179
2180 o = (Evas_Object_Image *)(obj->object_data); 2180 o = (Evas_Object_Image *)(obj->object_data);
2181 if (o->magic == MAGIC_OBJ_IMAGE) 2181 if (o->magic == MAGIC_OBJ_IMAGE)
2182 { 2182 {
2183 evas_object_image_load(obj); 2183 evas_object_image_load(obj);
2184 o->changed = 1; 2184 o->changed = 1;
2185 evas_object_change(obj); 2185 evas_object_change(obj);
2186 } 2186 }
2187 } 2187 }
2188 } 2188 }
2189 evas_image_cache_flush(e); 2189 evas_image_cache_flush(e);
2190} 2190}
@@ -2625,31 +2625,31 @@ evas_object_image_load(Evas_Object *obj)
2625 &lo); 2625 &lo);
2626 if (o->engine_data) 2626 if (o->engine_data)
2627 { 2627 {
2628 int w, h; 2628 int w, h;
2629 int stride = 0; 2629 int stride = 0;
2630 2630
2631 obj->layer->evas->engine.func->image_size_get 2631 obj->layer->evas->engine.func->image_size_get
2632 (obj->layer->evas->engine.data.output, 2632 (obj->layer->evas->engine.data.output,
2633 o->engine_data, &w, &h); 2633 o->engine_data, &w, &h);
2634 if (obj->layer->evas->engine.func->image_stride_get) 2634 if (obj->layer->evas->engine.func->image_stride_get)
2635 obj->layer->evas->engine.func->image_stride_get 2635 obj->layer->evas->engine.func->image_stride_get
2636 (obj->layer->evas->engine.data.output, 2636 (obj->layer->evas->engine.data.output,
2637 o->engine_data, &stride); 2637 o->engine_data, &stride);
2638 else 2638 else
2639 stride = w * 4; 2639 stride = w * 4;
2640 o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get 2640 o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get
2641 (obj->layer->evas->engine.data.output, 2641 (obj->layer->evas->engine.data.output,
2642 o->engine_data); 2642 o->engine_data);
2643 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get 2643 o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get
2644 (obj->layer->evas->engine.data.output, 2644 (obj->layer->evas->engine.data.output,
2645 o->engine_data); 2645 o->engine_data);
2646 o->cur.image.w = w; 2646 o->cur.image.w = w;
2647 o->cur.image.h = h; 2647 o->cur.image.h = h;
2648 o->cur.image.stride = stride; 2648 o->cur.image.stride = stride;
2649 } 2649 }
2650 else 2650 else
2651 { 2651 {
2652 o->load_error = EVAS_LOAD_ERROR_GENERIC; 2652 o->load_error = EVAS_LOAD_ERROR_GENERIC;
2653 } 2653 }
2654} 2654}
2655 2655
@@ -2659,18 +2659,18 @@ evas_object_image_figure_x_fill(Evas_Object *obj, Evas_Coord start, Evas_Coord s
2659 Evas_Coord w; 2659 Evas_Coord w;
2660 2660
2661 w = ((size * obj->layer->evas->output.w) / 2661 w = ((size * obj->layer->evas->output.w) /
2662 (Evas_Coord)obj->layer->evas->viewport.w); 2662 (Evas_Coord)obj->layer->evas->viewport.w);
2663 if (size <= 0) size = 1; 2663 if (size <= 0) size = 1;
2664 if (start > 0) 2664 if (start > 0)
2665 { 2665 {
2666 while (start - size > 0) start -= size; 2666 while (start - size > 0) start -= size;
2667 } 2667 }
2668 else if (start < 0) 2668 else if (start < 0)
2669 { 2669 {
2670 while (start < 0) start += size; 2670 while (start < 0) start += size;
2671 } 2671 }
2672 start = ((start * obj->layer->evas->output.w) / 2672 start = ((start * obj->layer->evas->output.w) /
2673 (Evas_Coord)obj->layer->evas->viewport.w); 2673 (Evas_Coord)obj->layer->evas->viewport.w);
2674 *size_ret = w; 2674 *size_ret = w;
2675 return start; 2675 return start;
2676} 2676}
@@ -2681,18 +2681,18 @@ evas_object_image_figure_y_fill(Evas_Object *obj, Evas_Coord start, Evas_Coord s
2681 Evas_Coord h; 2681 Evas_Coord h;
2682 2682
2683 h = ((size * obj->layer->evas->output.h) / 2683 h = ((size * obj->layer->evas->output.h) /
2684 (Evas_Coord)obj->layer->evas->viewport.h); 2684 (Evas_Coord)obj->layer->evas->viewport.h);
2685 if (size <= 0) size = 1; 2685 if (size <= 0) size = 1;
2686 if (start > 0) 2686 if (start > 0)
2687 { 2687 {
2688 while (start - size > 0) start -= size; 2688 while (start - size > 0) start -= size;
2689 } 2689 }
2690 else if (start < 0) 2690 else if (start < 0)
2691 { 2691 {
2692 while (start < 0) start += size; 2692 while (start < 0) start += size;
2693 } 2693 }
2694 start = ((start * obj->layer->evas->output.h) / 2694 start = ((start * obj->layer->evas->output.h) /
2695 (Evas_Coord)obj->layer->evas->viewport.h); 2695 (Evas_Coord)obj->layer->evas->viewport.h);
2696 *size_ret = h; 2696 *size_ret = h;
2697 return start; 2697 return start;
2698} 2698}
@@ -2777,7 +2777,7 @@ evas_object_image_free(Evas_Object *obj)
2777 if (o->video_surface) 2777 if (o->video_surface)
2778 { 2778 {
2779 o->video_surface = 0; 2779 o->video_surface = 0;
2780 obj->layer->evas->video_objects = eina_list_remove(obj->layer->evas->video_objects, obj); 2780 obj->layer->evas->video_objects = eina_list_remove(obj->layer->evas->video_objects, obj);
2781 } 2781 }
2782 o->engine_data = NULL; 2782 o->engine_data = NULL;
2783 o->magic = 0; 2783 o->magic = 0;
@@ -2829,27 +2829,27 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
2829 } 2829 }
2830 2830
2831 obj->layer->evas->engine.func->context_color_set(output, 2831 obj->layer->evas->engine.func->context_color_set(output,
2832 context, 2832 context,
2833 255, 255, 255, 255); 2833 255, 255, 255, 255);
2834 2834
2835 if ((obj->cur.cache.clip.r == 255) && 2835 if ((obj->cur.cache.clip.r == 255) &&
2836 (obj->cur.cache.clip.g == 255) && 2836 (obj->cur.cache.clip.g == 255) &&
2837 (obj->cur.cache.clip.b == 255) && 2837 (obj->cur.cache.clip.b == 255) &&
2838 (obj->cur.cache.clip.a == 255)) 2838 (obj->cur.cache.clip.a == 255))
2839 { 2839 {
2840 obj->layer->evas->engine.func->context_multiplier_unset(output, 2840 obj->layer->evas->engine.func->context_multiplier_unset(output,
2841 context); 2841 context);
2842 } 2842 }
2843 else 2843 else
2844 obj->layer->evas->engine.func->context_multiplier_set(output, 2844 obj->layer->evas->engine.func->context_multiplier_set(output,
2845 context, 2845 context,
2846 obj->cur.cache.clip.r, 2846 obj->cur.cache.clip.r,
2847 obj->cur.cache.clip.g, 2847 obj->cur.cache.clip.g,
2848 obj->cur.cache.clip.b, 2848 obj->cur.cache.clip.b,
2849 obj->cur.cache.clip.a); 2849 obj->cur.cache.clip.a);
2850 2850
2851 obj->layer->evas->engine.func->context_render_op_set(output, context, 2851 obj->layer->evas->engine.func->context_render_op_set(output, context,
2852 obj->cur.render_op); 2852 obj->cur.render_op);
2853 2853
2854 if (!o->cur.source) 2854 if (!o->cur.source)
2855 { 2855 {
@@ -2943,14 +2943,14 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
2943 2943
2944 if (pixels) 2944 if (pixels)
2945 { 2945 {
2946 Evas_Coord idw, idh, idx, idy; 2946 Evas_Coord idw, idh, idx, idy;
2947 int ix, iy, iw, ih; 2947 int ix, iy, iw, ih;
2948 int img_set = 0; 2948 int img_set = 0;
2949 2949
2950 if (o->dirty_pixels) 2950 if (o->dirty_pixels)
2951 { 2951 {
2952 if (o->func.get_pixels) 2952 if (o->func.get_pixels)
2953 { 2953 {
2954 // Set img object for direct rendering optimization 2954 // Set img object for direct rendering optimization
2955 // Check for image w/h against image geometry w/h 2955 // Check for image w/h against image geometry w/h
2956 // Check for image color r,g,b,a = {255,255,255,255} 2956 // Check for image color r,g,b,a = {255,255,255,255}
@@ -2970,22 +2970,22 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
2970 } 2970 }
2971 } 2971 }
2972 2972
2973 o->func.get_pixels(o->func.get_pixels_data, obj); 2973 o->func.get_pixels(o->func.get_pixels_data, obj);
2974 if (o->engine_data != pixels) 2974 if (o->engine_data != pixels)
2975 pixels = o->engine_data; 2975 pixels = o->engine_data;
2976 o->engine_data = obj->layer->evas->engine.func->image_dirty_region 2976 o->engine_data = obj->layer->evas->engine.func->image_dirty_region
2977 (obj->layer->evas->engine.data.output, o->engine_data, 2977 (obj->layer->evas->engine.data.output, o->engine_data,
2978 0, 0, o->cur.image.w, o->cur.image.h); 2978 0, 0, o->cur.image.w, o->cur.image.h);
2979 } 2979 }
2980 o->dirty_pixels = 0; 2980 o->dirty_pixels = 0;
2981 } 2981 }
2982 if ((obj->cur.map) && (obj->cur.map->count > 3) && (obj->cur.usemap)) 2982 if ((obj->cur.map) && (obj->cur.map->count > 3) && (obj->cur.usemap))
2983 { 2983 {
2984 evas_object_map_update(obj, x, y, imagew, imageh, uvw, uvh); 2984 evas_object_map_update(obj, x, y, imagew, imageh, uvw, uvh);
2985 2985
2986 obj->layer->evas->engine.func->image_map_draw 2986 obj->layer->evas->engine.func->image_map_draw
2987 (output, context, surface, pixels, obj->spans, 2987 (output, context, surface, pixels, obj->spans,
2988 o->cur.smooth_scale | obj->cur.map->smooth, 0); 2988 o->cur.smooth_scale | obj->cur.map->smooth, 0);
2989 } 2989 }
2990 else 2990 else
2991 { 2991 {
@@ -3214,15 +3214,15 @@ evas_object_image_render_pre(Evas_Object *obj)
3214 { 3214 {
3215 ERR("%p has invalid fill size: %dx%d. Ignored", 3215 ERR("%p has invalid fill size: %dx%d. Ignored",
3216 obj, o->cur.fill.w, o->cur.fill.h); 3216 obj, o->cur.fill.w, o->cur.fill.h);
3217 return; 3217 return;
3218 } 3218 }
3219 3219
3220 /* if someone is clipping this obj - go calculate the clipper */ 3220 /* if someone is clipping this obj - go calculate the clipper */
3221 if (obj->cur.clipper) 3221 if (obj->cur.clipper)
3222 { 3222 {
3223 if (obj->cur.cache.clip.dirty) 3223 if (obj->cur.cache.clip.dirty)
3224 evas_object_clip_recalc(obj->cur.clipper); 3224 evas_object_clip_recalc(obj->cur.clipper);
3225 obj->cur.clipper->func->render_pre(obj->cur.clipper); 3225 obj->cur.clipper->func->render_pre(obj->cur.clipper);
3226 } 3226 }
3227 /* Proxy: Do it early */ 3227 /* Proxy: Do it early */
3228 if (o->cur.source && 3228 if (o->cur.source &&
@@ -3239,12 +3239,12 @@ evas_object_image_render_pre(Evas_Object *obj)
3239 was_v = evas_object_was_visible(obj); 3239 was_v = evas_object_was_visible(obj);
3240 if (is_v != was_v) 3240 if (is_v != was_v)
3241 { 3241 {
3242 evas_object_render_pre_visible_change(&e->clip_changes, obj, is_v, was_v); 3242 evas_object_render_pre_visible_change(&e->clip_changes, obj, is_v, was_v);
3243 if (!o->pixel_updates) goto done; 3243 if (!o->pixel_updates) goto done;
3244 } 3244 }
3245 if (obj->changed_map) 3245 if (obj->changed_map)
3246 { 3246 {
3247 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3247 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3248 goto done; 3248 goto done;
3249 } 3249 }
3250 /* it's not visible - we accounted for it appearing or not so just abort */ 3250 /* it's not visible - we accounted for it appearing or not so just abort */
@@ -3254,8 +3254,8 @@ evas_object_image_render_pre(Evas_Object *obj)
3254 /* if we restacked (layer or just within a layer) and don't clip anyone */ 3254 /* if we restacked (layer or just within a layer) and don't clip anyone */
3255 if (obj->restack) 3255 if (obj->restack)
3256 { 3256 {
3257 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3257 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3258 if (!o->pixel_updates) goto done; 3258 if (!o->pixel_updates) goto done;
3259 } 3259 }
3260 /* if it changed color */ 3260 /* if it changed color */
3261 if ((obj->cur.color.r != obj->prev.color.r) || 3261 if ((obj->cur.color.r != obj->prev.color.r) ||
@@ -3263,71 +3263,71 @@ evas_object_image_render_pre(Evas_Object *obj)
3263 (obj->cur.color.b != obj->prev.color.b) || 3263 (obj->cur.color.b != obj->prev.color.b) ||
3264 (obj->cur.color.a != obj->prev.color.a)) 3264 (obj->cur.color.a != obj->prev.color.a))
3265 { 3265 {
3266 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3266 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3267 if (!o->pixel_updates) goto done; 3267 if (!o->pixel_updates) goto done;
3268 } 3268 }
3269 /* if it changed render op */ 3269 /* if it changed render op */
3270 if (obj->cur.render_op != obj->prev.render_op) 3270 if (obj->cur.render_op != obj->prev.render_op)
3271 { 3271 {
3272 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3272 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3273 if (!o->pixel_updates) goto done; 3273 if (!o->pixel_updates) goto done;
3274 } 3274 }
3275 /* if it changed anti_alias */ 3275 /* if it changed anti_alias */
3276 if (obj->cur.anti_alias != obj->prev.anti_alias) 3276 if (obj->cur.anti_alias != obj->prev.anti_alias)
3277 { 3277 {
3278 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3278 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3279 if (!o->pixel_updates) goto done; 3279 if (!o->pixel_updates) goto done;
3280 } 3280 }
3281 if (o->changed) 3281 if (o->changed)
3282 { 3282 {
3283 if (((o->cur.file) && (!o->prev.file)) || 3283 if (((o->cur.file) && (!o->prev.file)) ||
3284 ((!o->cur.file) && (o->prev.file)) || 3284 ((!o->cur.file) && (o->prev.file)) ||
3285 ((o->cur.key) && (!o->prev.key)) || 3285 ((o->cur.key) && (!o->prev.key)) ||
3286 ((!o->cur.key) && (o->prev.key)) 3286 ((!o->cur.key) && (o->prev.key))
3287 ) 3287 )
3288 { 3288 {
3289 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3289 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3290 if (!o->pixel_updates) goto done; 3290 if (!o->pixel_updates) goto done;
3291 } 3291 }
3292 if ((o->cur.image.w != o->prev.image.w) || 3292 if ((o->cur.image.w != o->prev.image.w) ||
3293 (o->cur.image.h != o->prev.image.h) || 3293 (o->cur.image.h != o->prev.image.h) ||
3294 (o->cur.has_alpha != o->prev.has_alpha) || 3294 (o->cur.has_alpha != o->prev.has_alpha) ||
3295 (o->cur.cspace != o->prev.cspace) || 3295 (o->cur.cspace != o->prev.cspace) ||
3296 (o->cur.smooth_scale != o->prev.smooth_scale)) 3296 (o->cur.smooth_scale != o->prev.smooth_scale))
3297 { 3297 {
3298 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3298 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3299 if (!o->pixel_updates) goto done; 3299 if (!o->pixel_updates) goto done;
3300 } 3300 }
3301 if ((o->cur.border.l != o->prev.border.l) || 3301 if ((o->cur.border.l != o->prev.border.l) ||
3302 (o->cur.border.r != o->prev.border.r) || 3302 (o->cur.border.r != o->prev.border.r) ||
3303 (o->cur.border.t != o->prev.border.t) || 3303 (o->cur.border.t != o->prev.border.t) ||
3304 (o->cur.border.b != o->prev.border.b) || 3304 (o->cur.border.b != o->prev.border.b) ||
3305 (o->cur.border.fill != o->prev.border.fill) || 3305 (o->cur.border.fill != o->prev.border.fill) ||
3306 (o->cur.border.scale != o->prev.border.scale)) 3306 (o->cur.border.scale != o->prev.border.scale))
3307 { 3307 {
3308 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3308 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3309 if (!o->pixel_updates) goto done; 3309 if (!o->pixel_updates) goto done;
3310 } 3310 }
3311 if (o->dirty_pixels) 3311 if (o->dirty_pixels)
3312 { 3312 {
3313 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3313 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3314 if (!o->pixel_updates) goto done; 3314 if (!o->pixel_updates) goto done;
3315 } 3315 }
3316 if (o->cur.frame != o->prev.frame) 3316 if (o->cur.frame != o->prev.frame)
3317 { 3317 {
3318 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3318 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3319 if (!o->pixel_updates) goto done; 3319 if (!o->pixel_updates) goto done;
3320 } 3320 }
3321 3321
3322 } 3322 }
3323 /* if it changed geometry - and obviously not visibility or color */ 3323 /* if it changed geometry - and obviously not visibility or color */
3324 /* calculate differences since we have a constant color fill */ 3324 /* calculate differences since we have a constant color fill */
3325 /* we really only need to update the differences */ 3325 /* we really only need to update the differences */
3326#if 0 // XXX: maybe buggy? 3326#if 0 // XXX: maybe buggy?
3327 if (((obj->cur.geometry.x != obj->prev.geometry.x) || 3327 if (((obj->cur.geometry.x != obj->prev.geometry.x) ||
3328 (obj->cur.geometry.y != obj->prev.geometry.y) || 3328 (obj->cur.geometry.y != obj->prev.geometry.y) ||
3329 (obj->cur.geometry.w != obj->prev.geometry.w) || 3329 (obj->cur.geometry.w != obj->prev.geometry.w) ||
3330 (obj->cur.geometry.h != obj->prev.geometry.h)) && 3330 (obj->cur.geometry.h != obj->prev.geometry.h)) &&
3331 (o->cur.fill.w == o->prev.fill.w) && 3331 (o->cur.fill.w == o->prev.fill.w) &&
3332 (o->cur.fill.h == o->prev.fill.h) && 3332 (o->cur.fill.h == o->prev.fill.h) &&
3333 ((o->cur.fill.x + obj->cur.geometry.x) == (o->prev.fill.x + obj->prev.geometry.x)) && 3333 ((o->cur.fill.x + obj->cur.geometry.x) == (o->prev.fill.x + obj->prev.geometry.x)) &&
@@ -3335,37 +3335,37 @@ evas_object_image_render_pre(Evas_Object *obj)
3335 (!o->pixel_updates) 3335 (!o->pixel_updates)
3336 ) 3336 )
3337 { 3337 {
3338 evas_rects_return_difference_rects(&e->clip_changes, 3338 evas_rects_return_difference_rects(&e->clip_changes,
3339 obj->cur.geometry.x, 3339 obj->cur.geometry.x,
3340 obj->cur.geometry.y, 3340 obj->cur.geometry.y,
3341 obj->cur.geometry.w, 3341 obj->cur.geometry.w,
3342 obj->cur.geometry.h, 3342 obj->cur.geometry.h,
3343 obj->prev.geometry.x, 3343 obj->prev.geometry.x,
3344 obj->prev.geometry.y, 3344 obj->prev.geometry.y,
3345 obj->prev.geometry.w, 3345 obj->prev.geometry.w,
3346 obj->prev.geometry.h); 3346 obj->prev.geometry.h);
3347 if (!o->pixel_updates) goto done; 3347 if (!o->pixel_updates) goto done;
3348 } 3348 }
3349#endif 3349#endif
3350 if (((obj->cur.geometry.x != obj->prev.geometry.x) || 3350 if (((obj->cur.geometry.x != obj->prev.geometry.x) ||
3351 (obj->cur.geometry.y != obj->prev.geometry.y) || 3351 (obj->cur.geometry.y != obj->prev.geometry.y) ||
3352 (obj->cur.geometry.w != obj->prev.geometry.w) || 3352 (obj->cur.geometry.w != obj->prev.geometry.w) ||
3353 (obj->cur.geometry.h != obj->prev.geometry.h)) 3353 (obj->cur.geometry.h != obj->prev.geometry.h))
3354 ) 3354 )
3355 { 3355 {
3356 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3356 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3357 if (!o->pixel_updates) goto done; 3357 if (!o->pixel_updates) goto done;
3358 } 3358 }
3359 if (o->changed) 3359 if (o->changed)
3360 { 3360 {
3361 if ((o->cur.fill.x != o->prev.fill.x) || 3361 if ((o->cur.fill.x != o->prev.fill.x) ||
3362 (o->cur.fill.y != o->prev.fill.y) || 3362 (o->cur.fill.y != o->prev.fill.y) ||
3363 (o->cur.fill.w != o->prev.fill.w) || 3363 (o->cur.fill.w != o->prev.fill.w) ||
3364 (o->cur.fill.h != o->prev.fill.h)) 3364 (o->cur.fill.h != o->prev.fill.h))
3365 { 3365 {
3366 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3366 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3367 if (!o->pixel_updates) goto done; 3367 if (!o->pixel_updates) goto done;
3368 } 3368 }
3369 if (o->pixel_updates) 3369 if (o->pixel_updates)
3370 { 3370 {
3371 if ((o->cur.border.l == 0) && 3371 if ((o->cur.border.l == 0) &&
@@ -3427,15 +3427,15 @@ evas_object_image_render_pre(Evas_Object *obj)
3427 } 3427 }
3428 else 3428 else
3429 { 3429 {
3430 Eina_Rectangle *r; 3430 Eina_Rectangle *r;
3431 3431
3432 EINA_LIST_FREE(o->pixel_updates, r) 3432 EINA_LIST_FREE(o->pixel_updates, r)
3433 eina_rectangle_free(r); 3433 eina_rectangle_free(r);
3434 e->engine.func->image_dirty_region(e->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h); 3434 e->engine.func->image_dirty_region(e->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h);
3435 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj); 3435 evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
3436 goto done; 3436 goto done;
3437 } 3437 }
3438 } 3438 }
3439 } 3439 }
3440#if 0 // filtering disabled 3440#if 0 // filtering disabled
3441 if (obj->filter && obj->filter->dirty) 3441 if (obj->filter && obj->filter->dirty)
@@ -3837,22 +3837,22 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3837 3837
3838 switch (o->cur.cspace) 3838 switch (o->cur.cspace)
3839 { 3839 {
3840 case EVAS_COLORSPACE_ARGB8888: 3840 case EVAS_COLORSPACE_ARGB8888:
3841 out = evas_common_convert_argb8888_to(data, 3841 out = evas_common_convert_argb8888_to(data,
3842 o->cur.image.w, 3842 o->cur.image.w,
3843 o->cur.image.h, 3843 o->cur.image.h,
3844 o->cur.image.stride >> 2, 3844 o->cur.image.stride >> 2,
3845 o->cur.has_alpha, 3845 o->cur.has_alpha,
3846 to_cspace); 3846 to_cspace);
3847 break; 3847 break;
3848 case EVAS_COLORSPACE_RGB565_A5P: 3848 case EVAS_COLORSPACE_RGB565_A5P:
3849 out = evas_common_convert_rgb565_a5p_to(data, 3849 out = evas_common_convert_rgb565_a5p_to(data,
3850 o->cur.image.w, 3850 o->cur.image.w,
3851 o->cur.image.h, 3851 o->cur.image.h,
3852 o->cur.image.stride >> 1, 3852 o->cur.image.stride >> 1,
3853 o->cur.has_alpha, 3853 o->cur.has_alpha,
3854 to_cspace); 3854 to_cspace);
3855 break; 3855 break;
3856 case EVAS_COLORSPACE_YCBCR422601_PL: 3856 case EVAS_COLORSPACE_YCBCR422601_PL:
3857 out = evas_common_convert_yuv_422_601_to(data, 3857 out = evas_common_convert_yuv_422_601_to(data,
3858 o->cur.image.w, 3858 o->cur.image.w,
@@ -3873,13 +3873,13 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3873 break; 3873 break;
3874 case EVAS_COLORSPACE_YCBCR420TM12601_PL: 3874 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
3875 out = evas_common_convert_yuv_420T_601_to(data, 3875 out = evas_common_convert_yuv_420T_601_to(data,
3876 o->cur.image.w, 3876 o->cur.image.w,
3877 o->cur.image.h, 3877 o->cur.image.h,
3878 to_cspace); 3878 to_cspace);
3879 break; 3879 break;
3880 default: 3880 default:
3881 WRN("unknow colorspace: %i\n", o->cur.cspace); 3881 WRN("unknow colorspace: %i\n", o->cur.cspace);
3882 break; 3882 break;
3883 } 3883 }
3884 3884
3885 return out; 3885 return out;
diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c
index cfa62e1ccc..d1253fb540 100644
--- a/legacy/evas/src/lib/canvas/evas_object_main.c
+++ b/legacy/evas/src/lib/canvas/evas_object_main.c
@@ -178,10 +178,10 @@ evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
178 obj->cur.geometry.y, 178 obj->cur.geometry.y,
179 obj->cur.geometry.w, 179 obj->cur.geometry.w,
180 obj->cur.geometry.h, 180 obj->cur.geometry.h,
181//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x, 181//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
182//// obj->cur.cache.geometry.y, 182//// obj->cur.cache.geometry.y,
183//// obj->cur.cache.geometry.w, 183//// obj->cur.cache.geometry.w,
184//// obj->cur.cache.geometry.h, 184//// obj->cur.cache.geometry.h,
185 obj->cur.clipper->cur.cache.clip.x, 185 obj->cur.clipper->cur.cache.clip.x,
186 obj->cur.clipper->cur.cache.clip.y, 186 obj->cur.clipper->cur.cache.clip.y,
187 obj->cur.clipper->cur.cache.clip.w, 187 obj->cur.clipper->cur.cache.clip.w,
@@ -194,10 +194,10 @@ evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
194 obj->prev.geometry.y, 194 obj->prev.geometry.y,
195 obj->prev.geometry.w, 195 obj->prev.geometry.w,
196 obj->prev.geometry.h, 196 obj->prev.geometry.h,
197//// rl = evas_rects_return_difference_rects(obj->prev.cache.geometry.x, 197//// rl = evas_rects_return_difference_rects(obj->prev.cache.geometry.x,
198//// obj->prev.cache.geometry.y, 198//// obj->prev.cache.geometry.y,
199//// obj->prev.cache.geometry.w, 199//// obj->prev.cache.geometry.w,
200//// obj->prev.cache.geometry.h, 200//// obj->prev.cache.geometry.h,
201 obj->prev.clipper->prev.cache.clip.x, 201 obj->prev.clipper->prev.cache.clip.x,
202 obj->prev.clipper->prev.cache.clip.y, 202 obj->prev.clipper->prev.cache.clip.y,
203 obj->prev.clipper->prev.cache.clip.w, 203 obj->prev.clipper->prev.cache.clip.w,
@@ -224,19 +224,19 @@ evas_object_render_pre_prev_cur_add(Eina_Array *rects, Evas_Object *obj)
224 obj->cur.geometry.y, 224 obj->cur.geometry.y,
225 obj->cur.geometry.w, 225 obj->cur.geometry.w,
226 obj->cur.geometry.h); 226 obj->cur.geometry.h);
227//// obj->cur.cache.geometry.x, 227//// obj->cur.cache.geometry.x,
228//// obj->cur.cache.geometry.y, 228//// obj->cur.cache.geometry.y,
229//// obj->cur.cache.geometry.w, 229//// obj->cur.cache.geometry.w,
230//// obj->cur.cache.geometry.h); 230//// obj->cur.cache.geometry.h);
231 evas_add_rect(rects, 231 evas_add_rect(rects,
232 obj->prev.geometry.x, 232 obj->prev.geometry.x,
233 obj->prev.geometry.y, 233 obj->prev.geometry.y,
234 obj->prev.geometry.w, 234 obj->prev.geometry.w,
235 obj->prev.geometry.h); 235 obj->prev.geometry.h);
236//// obj->prev.cache.geometry.x, 236//// obj->prev.cache.geometry.x,
237//// obj->prev.cache.geometry.y, 237//// obj->prev.cache.geometry.y,
238//// obj->prev.cache.geometry.w, 238//// obj->prev.cache.geometry.w,
239//// obj->prev.cache.geometry.h); 239//// obj->prev.cache.geometry.h);
240*/ 240*/
241} 241}
242 242
@@ -565,7 +565,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
565 computeminmax = EINA_TRUE; 565 computeminmax = EINA_TRUE;
566 } 566 }
567 567
568 if (computeminmax) 568 if (computeminmax)
569 { 569 {
570 evas_object_smart_need_bounding_box_update(obj->smart.parent); 570 evas_object_smart_need_bounding_box_update(obj->smart.parent);
571 } 571 }
diff --git a/legacy/evas/src/lib/canvas/evas_object_rectangle.c b/legacy/evas/src/lib/canvas/evas_object_rectangle.c
index 5b11379d5e..fa90f42b1c 100644
--- a/legacy/evas/src/lib/canvas/evas_object_rectangle.c
+++ b/legacy/evas/src/lib/canvas/evas_object_rectangle.c
@@ -142,26 +142,26 @@ evas_object_rectangle_render(Evas_Object *obj, void *output, void *context, void
142{ 142{
143 /* render object to surface with context, and offxet by x,y */ 143 /* render object to surface with context, and offxet by x,y */
144 obj->layer->evas->engine.func->context_color_set(output, 144 obj->layer->evas->engine.func->context_color_set(output,
145 context, 145 context,
146 obj->cur.cache.clip.r, 146 obj->cur.cache.clip.r,
147 obj->cur.cache.clip.g, 147 obj->cur.cache.clip.g,
148 obj->cur.cache.clip.b, 148 obj->cur.cache.clip.b,
149 obj->cur.cache.clip.a); 149 obj->cur.cache.clip.a);
150 obj->layer->evas->engine.func->context_multiplier_unset(output, 150 obj->layer->evas->engine.func->context_multiplier_unset(output,
151 context); 151 context);
152 obj->layer->evas->engine.func->context_render_op_set(output, context, 152 obj->layer->evas->engine.func->context_render_op_set(output, context,
153 obj->cur.render_op); 153 obj->cur.render_op);
154 obj->layer->evas->engine.func->rectangle_draw(output, 154 obj->layer->evas->engine.func->rectangle_draw(output,
155 context, 155 context,
156 surface, 156 surface,
157 obj->cur.geometry.x + x, 157 obj->cur.geometry.x + x,
158 obj->cur.geometry.y + y, 158 obj->cur.geometry.y + y,
159 obj->cur.geometry.w, 159 obj->cur.geometry.w,
160 obj->cur.geometry.h); 160 obj->cur.geometry.h);
161//// obj->cur.cache.geometry.x + x, 161//// obj->cur.cache.geometry.x + x,
162//// obj->cur.cache.geometry.y + y, 162//// obj->cur.cache.geometry.y + y,
163//// obj->cur.cache.geometry.w, 163//// obj->cur.cache.geometry.w,
164//// obj->cur.cache.geometry.h); 164//// obj->cur.cache.geometry.h);
165} 165}
166 166
167static void 167static void
@@ -180,9 +180,9 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
180 /* if someone is clipping this obj - go calculate the clipper */ 180 /* if someone is clipping this obj - go calculate the clipper */
181 if (obj->cur.clipper) 181 if (obj->cur.clipper)
182 { 182 {
183 if (obj->cur.cache.clip.dirty) 183 if (obj->cur.cache.clip.dirty)
184 evas_object_clip_recalc(obj->cur.clipper); 184 evas_object_clip_recalc(obj->cur.clipper);
185 obj->cur.clipper->func->render_pre(obj->cur.clipper); 185 obj->cur.clipper->func->render_pre(obj->cur.clipper);
186 } 186 }
187 /* now figure what changed and add draw rects */ 187 /* now figure what changed and add draw rects */
188 /* if it just became visible or invisible */ 188 /* if it just became visible or invisible */
@@ -191,8 +191,8 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
191 if (!(is_v | was_v)) goto done; 191 if (!(is_v | was_v)) goto done;
192 if (is_v != was_v) 192 if (is_v != was_v)
193 { 193 {
194 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); 194 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
195 goto done; 195 goto done;
196 } 196 }
197 if (obj->changed_map) 197 if (obj->changed_map)
198 { 198 {
@@ -207,14 +207,14 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
207 /* if we restacked (layer or just within a layer) and don't clip anyone */ 207 /* if we restacked (layer or just within a layer) and don't clip anyone */
208 if ((obj->restack) && (!obj->clip.clipees)) 208 if ((obj->restack) && (!obj->clip.clipees))
209 { 209 {
210 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 210 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
211 goto done; 211 goto done;
212 } 212 }
213 /* if it changed render op */ 213 /* if it changed render op */
214 if (obj->cur.render_op != obj->prev.render_op) 214 if (obj->cur.render_op != obj->prev.render_op)
215 { 215 {
216 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 216 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
217 goto done; 217 goto done;
218 } 218 }
219 /* if it changed color */ 219 /* if it changed color */
220 if ((obj->cur.color.r != obj->prev.color.r) || 220 if ((obj->cur.color.r != obj->prev.color.r) ||
@@ -222,8 +222,8 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
222 (obj->cur.color.b != obj->prev.color.b) || 222 (obj->cur.color.b != obj->prev.color.b) ||
223 (obj->cur.color.a != obj->prev.color.a)) 223 (obj->cur.color.a != obj->prev.color.a))
224 { 224 {
225 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 225 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
226 goto done; 226 goto done;
227 } 227 }
228 /* if it changed geometry - and obviously not visibility or color */ 228 /* if it changed geometry - and obviously not visibility or color */
229 /* calculate differences since we have a constant color fill */ 229 /* calculate differences since we have a constant color fill */
@@ -233,24 +233,24 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
233 (obj->cur.geometry.w != obj->prev.geometry.w) || 233 (obj->cur.geometry.w != obj->prev.geometry.w) ||
234 (obj->cur.geometry.h != obj->prev.geometry.h)) 234 (obj->cur.geometry.h != obj->prev.geometry.h))
235 { 235 {
236 evas_rects_return_difference_rects(&obj->layer->evas->clip_changes, 236 evas_rects_return_difference_rects(&obj->layer->evas->clip_changes,
237 obj->cur.geometry.x, 237 obj->cur.geometry.x,
238 obj->cur.geometry.y, 238 obj->cur.geometry.y,
239 obj->cur.geometry.w, 239 obj->cur.geometry.w,
240 obj->cur.geometry.h, 240 obj->cur.geometry.h,
241 obj->prev.geometry.x, 241 obj->prev.geometry.x,
242 obj->prev.geometry.y, 242 obj->prev.geometry.y,
243 obj->prev.geometry.w, 243 obj->prev.geometry.w,
244 obj->prev.geometry.h); 244 obj->prev.geometry.h);
245//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x, 245//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
246//// obj->cur.cache.geometry.y, 246//// obj->cur.cache.geometry.y,
247//// obj->cur.cache.geometry.w, 247//// obj->cur.cache.geometry.w,
248//// obj->cur.cache.geometry.h, 248//// obj->cur.cache.geometry.h,
249//// obj->prev.cache.geometry.x, 249//// obj->prev.cache.geometry.x,
250//// obj->prev.cache.geometry.y, 250//// obj->prev.cache.geometry.y,
251//// obj->prev.cache.geometry.w, 251//// obj->prev.cache.geometry.w,
252//// obj->prev.cache.geometry.h); 252//// obj->prev.cache.geometry.h);
253 goto done; 253 goto done;
254 } 254 }
255 /* it obviously didn't change - add a NO obscure - this "unupdates" this */ 255 /* it obviously didn't change - add a NO obscure - this "unupdates" this */
256 /* area so if there were updates for it they get wiped. don't do it if we */ 256 /* area so if there were updates for it they get wiped. don't do it if we */
@@ -260,10 +260,10 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
260 evas_object_is_opaque(obj) && 260 evas_object_is_opaque(obj) &&
261 (!obj->clip.clipees)) 261 (!obj->clip.clipees))
262 obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output, 262 obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output,
263 obj->cur.cache.clip.x, 263 obj->cur.cache.clip.x,
264 obj->cur.cache.clip.y, 264 obj->cur.cache.clip.y,
265 obj->cur.cache.clip.w, 265 obj->cur.cache.clip.w,
266 obj->cur.cache.clip.h); 266 obj->cur.cache.clip.h);
267 */ 267 */
268 done: 268 done:
269 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, obj, is_v, was_v); 269 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, obj, is_v, was_v);
@@ -289,9 +289,9 @@ evas_object_rectangle_is_opaque(Evas_Object *obj)
289 /* currently fully opaque over the entire rectangle it occupies */ 289 /* currently fully opaque over the entire rectangle it occupies */
290 if ((obj->cur.map) && (obj->cur.usemap)) return 0; 290 if ((obj->cur.map) && (obj->cur.usemap)) return 0;
291 if (obj->cur.render_op == EVAS_RENDER_COPY) 291 if (obj->cur.render_op == EVAS_RENDER_COPY)
292 return 1; 292 return 1;
293 if (obj->cur.render_op != EVAS_RENDER_BLEND) 293 if (obj->cur.render_op != EVAS_RENDER_BLEND)
294 return 0; 294 return 0;
295 return 1; 295 return 1;
296} 296}
297 297
@@ -301,9 +301,9 @@ evas_object_rectangle_was_opaque(Evas_Object *obj)
301 /* this returns 1 if the internal object data implies that the object was */ 301 /* this returns 1 if the internal object data implies that the object was */
302 /* previously fully opaque over the entire rectangle it occupies */ 302 /* previously fully opaque over the entire rectangle it occupies */
303 if (obj->prev.render_op == EVAS_RENDER_COPY) 303 if (obj->prev.render_op == EVAS_RENDER_COPY)
304 return 1; 304 return 1;
305 if (obj->prev.render_op != EVAS_RENDER_BLEND) 305 if (obj->prev.render_op != EVAS_RENDER_BLEND)
306 return 0; 306 return 0;
307 return 1; 307 return 1;
308} 308}
309 309
diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c
index 5f43244fef..2afc588645 100644
--- a/legacy/evas/src/lib/canvas/evas_object_text.c
+++ b/legacy/evas/src/lib/canvas/evas_object_text.c
@@ -23,7 +23,7 @@ struct _Evas_Object_Text
23 const char *source; 23 const char *source;
24 Evas_Font_Size size; 24 Evas_Font_Size size;
25 struct { 25 struct {
26 unsigned char r, g, b, a; 26 unsigned char r, g, b, a;
27 } outline, shadow, glow, glow2; 27 } outline, shadow, glow, glow2;
28 28
29 unsigned char style; 29 unsigned char style;
@@ -609,8 +609,8 @@ evas_object_text_text_set(Evas_Object *obj, const char *_text)
609 609
610 if (!text) text = eina_unicode_strdup(EINA_UNICODE_EMPTY_STRING); 610 if (!text) text = eina_unicode_strdup(EINA_UNICODE_EMPTY_STRING);
611 was = evas_object_is_in_output_rect(obj, 611 was = evas_object_is_in_output_rect(obj,
612 obj->layer->evas->pointer.x, 612 obj->layer->evas->pointer.x,
613 obj->layer->evas->pointer.y, 1, 1); 613 obj->layer->evas->pointer.y, 1, 1);
614 /* DO II */ 614 /* DO II */
615 /*Update bidi_props*/ 615 /*Update bidi_props*/
616 616
@@ -619,12 +619,12 @@ evas_object_text_text_set(Evas_Object *obj, const char *_text)
619 if ((text) && (*text)) 619 if ((text) && (*text))
620 { 620 {
621 _evas_object_text_layout(obj, o, text); 621 _evas_object_text_layout(obj, o, text);
622 eina_stringshare_replace(&o->cur.utf8_text, _text); 622 eina_stringshare_replace(&o->cur.utf8_text, _text);
623 o->prev.utf8_text = NULL; 623 o->prev.utf8_text = NULL;
624 } 624 }
625 else 625 else
626 { 626 {
627 eina_stringshare_replace(&o->cur.utf8_text, NULL); 627 eina_stringshare_replace(&o->cur.utf8_text, NULL);
628 } 628 }
629 if (text) 629 if (text)
630 { 630 {
@@ -637,14 +637,14 @@ evas_object_text_text_set(Evas_Object *obj, const char *_text)
637 evas_object_clip_dirty(obj); 637 evas_object_clip_dirty(obj);
638 evas_object_coords_recalc(obj); 638 evas_object_coords_recalc(obj);
639 is = evas_object_is_in_output_rect(obj, 639 is = evas_object_is_in_output_rect(obj,
640 obj->layer->evas->pointer.x, 640 obj->layer->evas->pointer.x,
641 obj->layer->evas->pointer.y, 1, 1); 641 obj->layer->evas->pointer.y, 1, 1);
642 if ((is || was) && obj->cur.visible) 642 if ((is || was) && obj->cur.visible)
643 evas_event_feed_mouse_move(obj->layer->evas, 643 evas_event_feed_mouse_move(obj->layer->evas,
644 obj->layer->evas->pointer.x, 644 obj->layer->evas->pointer.x,
645 obj->layer->evas->pointer.y, 645 obj->layer->evas->pointer.y,
646 obj->layer->evas->last_timestamp, 646 obj->layer->evas->last_timestamp,
647 NULL); 647 NULL);
648 evas_object_inform_call_resize(obj); 648 evas_object_inform_call_resize(obj);
649 if (text) free(text); 649 if (text) free(text);
650} 650}
@@ -850,15 +850,15 @@ evas_object_text_char_pos_get(const Evas_Object *obj, int pos, Evas_Coord *cx, E
850 x -= l; 850 x -= l;
851 if (x < 0) 851 if (x < 0)
852 { 852 {
853 w += x; 853 w += x;
854 x = 0; 854 x = 0;
855 } 855 }
856 if ((x + w) > obj->cur.geometry.w) w = obj->cur.geometry.w - x; 856 if ((x + w) > obj->cur.geometry.w) w = obj->cur.geometry.w - x;
857 if (w < 0) w = 0; 857 if (w < 0) w = 0;
858 if (y < 0) 858 if (y < 0)
859 { 859 {
860 h += y; 860 h += y;
861 y = 0; 861 y = 0;
862 } 862 }
863 if ((y + h) > obj->cur.geometry.h) h = obj->cur.geometry.h - y; 863 if ((y + h) > obj->cur.geometry.h) h = obj->cur.geometry.h - y;
864 if (h < 0) h = 0; 864 if (h < 0) h = 0;
@@ -910,15 +910,15 @@ evas_object_text_char_coords_get(const Evas_Object *obj, Evas_Coord x, Evas_Coor
910 rx -= l; 910 rx -= l;
911 if (rx < 0) 911 if (rx < 0)
912 { 912 {
913 rw += rx; 913 rw += rx;
914 rx = 0; 914 rx = 0;
915 } 915 }
916 if ((rx + rw) > obj->cur.geometry.w) rw = obj->cur.geometry.w - rx; 916 if ((rx + rw) > obj->cur.geometry.w) rw = obj->cur.geometry.w - rx;
917 if (rw < 0) rw = 0; 917 if (rw < 0) rw = 0;
918 if (ry < 0) 918 if (ry < 0)
919 { 919 {
920 rh += ry; 920 rh += ry;
921 ry = 0; 921 ry = 0;
922 } 922 }
923 if ((ry + rh) > obj->cur.geometry.h) rh = obj->cur.geometry.h - ry; 923 if ((ry + rh) > obj->cur.geometry.h) rh = obj->cur.geometry.h - ry;
924 if (rh < 0) rh = 0; 924 if (rh < 0) rh = 0;
@@ -1431,11 +1431,11 @@ evas_object_text_render(Evas_Object *obj, void *output, void *context, void *sur
1431 Evas_Object_Text_Item *it; 1431 Evas_Object_Text_Item *it;
1432 const char vals[5][5] = 1432 const char vals[5][5] =
1433 { 1433 {
1434 {0, 1, 2, 1, 0}, 1434 {0, 1, 2, 1, 0},
1435 {1, 3, 4, 3, 1}, 1435 {1, 3, 4, 3, 1},
1436 {2, 4, 5, 4, 2}, 1436 {2, 4, 5, 4, 2},
1437 {1, 3, 4, 3, 1}, 1437 {1, 3, 4, 3, 1},
1438 {0, 1, 2, 1, 0} 1438 {0, 1, 2, 1, 0}
1439 }; 1439 };
1440 int sl = 0, st = 0; 1440 int sl = 0, st = 0;
1441 int shad_dst, shad_sz, dx, dy, haveshad; 1441 int shad_dst, shad_sz, dx, dy, haveshad;
@@ -1464,55 +1464,55 @@ evas_object_text_render(Evas_Object *obj, void *output, void *context, void *sur
1464 obj->cur.geometry.h); 1464 obj->cur.geometry.h);
1465 */ 1465 */
1466#define COLOR_ONLY_SET(object, sub, col) \ 1466#define COLOR_ONLY_SET(object, sub, col) \
1467 ENFN->context_color_set(output, context, \ 1467 ENFN->context_color_set(output, context, \
1468 object->sub.col.r, \ 1468 object->sub.col.r, \
1469 object->sub.col.g, \ 1469 object->sub.col.g, \
1470 object->sub.col.b, \ 1470 object->sub.col.b, \
1471 object->sub.col.a); 1471 object->sub.col.a);
1472 1472
1473#define COLOR_SET(object, sub, col) \ 1473#define COLOR_SET(object, sub, col) \
1474 if (obj->cur.clipper)\ 1474 if (obj->cur.clipper)\
1475 ENFN->context_color_set(output, context, \ 1475 ENFN->context_color_set(output, context, \
1476 ((int)object->sub.col.r * ((int)obj->cur.clipper->cur.cache.clip.r + 1)) >> 8, \ 1476 ((int)object->sub.col.r * ((int)obj->cur.clipper->cur.cache.clip.r + 1)) >> 8, \
1477 ((int)object->sub.col.g * ((int)obj->cur.clipper->cur.cache.clip.g + 1)) >> 8, \ 1477 ((int)object->sub.col.g * ((int)obj->cur.clipper->cur.cache.clip.g + 1)) >> 8, \
1478 ((int)object->sub.col.b * ((int)obj->cur.clipper->cur.cache.clip.b + 1)) >> 8, \ 1478 ((int)object->sub.col.b * ((int)obj->cur.clipper->cur.cache.clip.b + 1)) >> 8, \
1479 ((int)object->sub.col.a * ((int)obj->cur.clipper->cur.cache.clip.a + 1)) >> 8); \ 1479 ((int)object->sub.col.a * ((int)obj->cur.clipper->cur.cache.clip.a + 1)) >> 8); \
1480 else\ 1480 else\
1481 ENFN->context_color_set(output, context, \ 1481 ENFN->context_color_set(output, context, \
1482 object->sub.col.r, \ 1482 object->sub.col.r, \
1483 object->sub.col.g, \ 1483 object->sub.col.g, \
1484 object->sub.col.b, \ 1484 object->sub.col.b, \
1485 object->sub.col.a); 1485 object->sub.col.a);
1486 1486
1487#define COLOR_SET_AMUL(object, sub, col, amul) \ 1487#define COLOR_SET_AMUL(object, sub, col, amul) \
1488 if (obj->cur.clipper) \ 1488 if (obj->cur.clipper) \
1489 ENFN->context_color_set(output, context, \ 1489 ENFN->context_color_set(output, context, \
1490 (((int)object->sub.col.r) * ((int)obj->cur.clipper->cur.cache.clip.r) * (amul)) / 65025, \ 1490 (((int)object->sub.col.r) * ((int)obj->cur.clipper->cur.cache.clip.r) * (amul)) / 65025, \
1491 (((int)object->sub.col.g) * ((int)obj->cur.clipper->cur.cache.clip.g) * (amul)) / 65025, \ 1491 (((int)object->sub.col.g) * ((int)obj->cur.clipper->cur.cache.clip.g) * (amul)) / 65025, \
1492 (((int)object->sub.col.b) * ((int)obj->cur.clipper->cur.cache.clip.b) * (amul)) / 65025, \ 1492 (((int)object->sub.col.b) * ((int)obj->cur.clipper->cur.cache.clip.b) * (amul)) / 65025, \
1493 (((int)object->sub.col.a) * ((int)obj->cur.clipper->cur.cache.clip.a) * (amul)) / 65025); \ 1493 (((int)object->sub.col.a) * ((int)obj->cur.clipper->cur.cache.clip.a) * (amul)) / 65025); \
1494 else \ 1494 else \
1495 ENFN->context_color_set(output, context, \ 1495 ENFN->context_color_set(output, context, \
1496 (((int)object->sub.col.r) * (amul)) / 255, \ 1496 (((int)object->sub.col.r) * (amul)) / 255, \
1497 (((int)object->sub.col.g) * (amul)) / 255, \ 1497 (((int)object->sub.col.g) * (amul)) / 255, \
1498 (((int)object->sub.col.b) * (amul)) / 255, \ 1498 (((int)object->sub.col.b) * (amul)) / 255, \
1499 (((int)object->sub.col.a) * (amul)) / 255); 1499 (((int)object->sub.col.a) * (amul)) / 255);
1500 1500
1501#define DRAW_TEXT(ox, oy) \ 1501#define DRAW_TEXT(ox, oy) \
1502 if ((o->font) && (it->text_props.len > 0)) \ 1502 if ((o->font) && (it->text_props.len > 0)) \
1503 ENFN->font_draw(output, \ 1503 ENFN->font_draw(output, \
1504 context, \ 1504 context, \
1505 surface, \ 1505 surface, \
1506 o->font, \ 1506 o->font, \
1507 obj->cur.geometry.x + x + sl + ox + it->x, \ 1507 obj->cur.geometry.x + x + sl + ox + it->x, \
1508 obj->cur.geometry.y + y + st + oy + \ 1508 obj->cur.geometry.y + y + st + oy + \
1509 (int) \ 1509 (int) \
1510 (((o->max_ascent * obj->cur.geometry.h) / obj->cur.geometry.h)), \ 1510 (((o->max_ascent * obj->cur.geometry.h) / obj->cur.geometry.h)), \
1511 obj->cur.geometry.w, \ 1511 obj->cur.geometry.w, \
1512 obj->cur.geometry.h, \ 1512 obj->cur.geometry.h, \
1513 obj->cur.geometry.w, \ 1513 obj->cur.geometry.w, \
1514 obj->cur.geometry.h, \ 1514 obj->cur.geometry.h, \
1515 &it->text_props); 1515 &it->text_props);
1516 1516
1517 /* shadows */ 1517 /* shadows */
1518 shad_dst = shad_sz = dx = dy = haveshad = 0; 1518 shad_dst = shad_sz = dx = dy = haveshad = 0;
@@ -1685,9 +1685,9 @@ evas_object_text_render_pre(Evas_Object *obj)
1685 /* if someone is clipping this obj - go calculate the clipper */ 1685 /* if someone is clipping this obj - go calculate the clipper */
1686 if (obj->cur.clipper) 1686 if (obj->cur.clipper)
1687 { 1687 {
1688 if (obj->cur.cache.clip.dirty) 1688 if (obj->cur.cache.clip.dirty)
1689 evas_object_clip_recalc(obj->cur.clipper); 1689 evas_object_clip_recalc(obj->cur.clipper);
1690 obj->cur.clipper->func->render_pre(obj->cur.clipper); 1690 obj->cur.clipper->func->render_pre(obj->cur.clipper);
1691 } 1691 }
1692 /* now figure what changed and add draw rects 1692 /* now figure what changed and add draw rects
1693 if it just became visible or invisible */ 1693 if it just became visible or invisible */
@@ -1695,9 +1695,9 @@ evas_object_text_render_pre(Evas_Object *obj)
1695 was_v = evas_object_was_visible(obj); 1695 was_v = evas_object_was_visible(obj);
1696 if (is_v != was_v) 1696 if (is_v != was_v)
1697 { 1697 {
1698 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, 1698 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes,
1699 obj, is_v, was_v); 1699 obj, is_v, was_v);
1700 goto done; 1700 goto done;
1701 } 1701 }
1702 if (obj->changed_map) 1702 if (obj->changed_map)
1703 { 1703 {
@@ -1712,9 +1712,9 @@ evas_object_text_render_pre(Evas_Object *obj)
1712 /* if we restacked (layer or just within a layer) and dont clip anyone */ 1712 /* if we restacked (layer or just within a layer) and dont clip anyone */
1713 if (obj->restack) 1713 if (obj->restack)
1714 { 1714 {
1715 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1715 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1716 obj); 1716 obj);
1717 goto done; 1717 goto done;
1718 } 1718 }
1719 /* if it changed color */ 1719 /* if it changed color */
1720 if ((obj->cur.color.r != obj->prev.color.r) || 1720 if ((obj->cur.color.r != obj->prev.color.r) ||
@@ -1722,9 +1722,9 @@ evas_object_text_render_pre(Evas_Object *obj)
1722 (obj->cur.color.b != obj->prev.color.b) || 1722 (obj->cur.color.b != obj->prev.color.b) ||
1723 (obj->cur.color.a != obj->prev.color.a)) 1723 (obj->cur.color.a != obj->prev.color.a))
1724 { 1724 {
1725 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1725 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1726 obj); 1726 obj);
1727 goto done; 1727 goto done;
1728 } 1728 }
1729 /* if it changed geometry - and obviously not visibility or color 1729 /* if it changed geometry - and obviously not visibility or color
1730 calculate differences since we have a constant color fill 1730 calculate differences since we have a constant color fill
@@ -1734,53 +1734,53 @@ evas_object_text_render_pre(Evas_Object *obj)
1734 (obj->cur.geometry.w != obj->prev.geometry.w) || 1734 (obj->cur.geometry.w != obj->prev.geometry.w) ||
1735 (obj->cur.geometry.h != obj->prev.geometry.h)) 1735 (obj->cur.geometry.h != obj->prev.geometry.h))
1736 { 1736 {
1737 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1737 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1738 obj); 1738 obj);
1739 goto done; 1739 goto done;
1740 } 1740 }
1741 if (obj->cur.render_op != obj->prev.render_op) 1741 if (obj->cur.render_op != obj->prev.render_op)
1742 { 1742 {
1743 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1743 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1744 obj); 1744 obj);
1745 goto done; 1745 goto done;
1746 } 1746 }
1747 if (obj->cur.scale != obj->prev.scale) 1747 if (obj->cur.scale != obj->prev.scale)
1748 { 1748 {
1749 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1749 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1750 obj); 1750 obj);
1751 goto done; 1751 goto done;
1752 } 1752 }
1753 if (o->changed) 1753 if (o->changed)
1754 { 1754 {
1755 if ((o->cur.size != o->prev.size) || 1755 if ((o->cur.size != o->prev.size) ||
1756 ((o->cur.font != o->prev.font)) || 1756 ((o->cur.font != o->prev.font)) ||
1757 ((o->cur.utf8_text != o->prev.utf8_text)) || 1757 ((o->cur.utf8_text != o->prev.utf8_text)) ||
1758 ((o->cur.style != o->prev.style)) || 1758 ((o->cur.style != o->prev.style)) ||
1759 ((o->cur.shadow.r != o->prev.shadow.r)) || 1759 ((o->cur.shadow.r != o->prev.shadow.r)) ||
1760 ((o->cur.shadow.g != o->prev.shadow.g)) || 1760 ((o->cur.shadow.g != o->prev.shadow.g)) ||
1761 ((o->cur.shadow.b != o->prev.shadow.b)) || 1761 ((o->cur.shadow.b != o->prev.shadow.b)) ||
1762 ((o->cur.shadow.a != o->prev.shadow.a)) || 1762 ((o->cur.shadow.a != o->prev.shadow.a)) ||
1763 ((o->cur.outline.r != o->prev.outline.r)) || 1763 ((o->cur.outline.r != o->prev.outline.r)) ||
1764 ((o->cur.outline.g != o->prev.outline.g)) || 1764 ((o->cur.outline.g != o->prev.outline.g)) ||
1765 ((o->cur.outline.b != o->prev.outline.b)) || 1765 ((o->cur.outline.b != o->prev.outline.b)) ||
1766 ((o->cur.outline.a != o->prev.outline.a)) || 1766 ((o->cur.outline.a != o->prev.outline.a)) ||
1767 ((o->cur.glow.r != o->prev.glow.r)) || 1767 ((o->cur.glow.r != o->prev.glow.r)) ||
1768 ((o->cur.glow.g != o->prev.glow.g)) || 1768 ((o->cur.glow.g != o->prev.glow.g)) ||
1769 ((o->cur.glow.b != o->prev.glow.b)) || 1769 ((o->cur.glow.b != o->prev.glow.b)) ||
1770 ((o->cur.glow.a != o->prev.glow.a)) || 1770 ((o->cur.glow.a != o->prev.glow.a)) ||
1771 ((o->cur.glow2.r != o->prev.glow2.r)) || 1771 ((o->cur.glow2.r != o->prev.glow2.r)) ||
1772 ((o->cur.glow2.g != o->prev.glow2.g)) || 1772 ((o->cur.glow2.g != o->prev.glow2.g)) ||
1773 ((o->cur.glow2.b != o->prev.glow2.b)) || 1773 ((o->cur.glow2.b != o->prev.glow2.b)) ||
1774 ((o->cur.glow2.a != o->prev.glow2.a))) 1774 ((o->cur.glow2.a != o->prev.glow2.a)))
1775 { 1775 {
1776 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 1776 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
1777 obj); 1777 obj);
1778 goto done; 1778 goto done;
1779 } 1779 }
1780 } 1780 }
1781 done: 1781 done:
1782 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, 1782 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes,
1783 obj, is_v, was_v); 1783 obj, is_v, was_v);
1784} 1784}
1785 1785
1786static void 1786static void
@@ -1873,10 +1873,10 @@ _evas_object_text_rehint(Evas_Object *obj)
1873 o = (Evas_Object_Text *)(obj->object_data); 1873 o = (Evas_Object_Text *)(obj->object_data);
1874 if (!o->font) return; 1874 if (!o->font) return;
1875 evas_font_load_hinting_set(obj->layer->evas, o->font, 1875 evas_font_load_hinting_set(obj->layer->evas, o->font,
1876 obj->layer->evas->hinting); 1876 obj->layer->evas->hinting);
1877 was = evas_object_is_in_output_rect(obj, 1877 was = evas_object_is_in_output_rect(obj,
1878 obj->layer->evas->pointer.x, 1878 obj->layer->evas->pointer.x,
1879 obj->layer->evas->pointer.y, 1, 1); 1879 obj->layer->evas->pointer.y, 1, 1);
1880 /* DO II */ 1880 /* DO II */
1881 _evas_object_text_recalc(obj); 1881 _evas_object_text_recalc(obj);
1882 o->changed = 1; 1882 o->changed = 1;
@@ -1884,14 +1884,14 @@ _evas_object_text_rehint(Evas_Object *obj)
1884 evas_object_clip_dirty(obj); 1884 evas_object_clip_dirty(obj);
1885 evas_object_coords_recalc(obj); 1885 evas_object_coords_recalc(obj);
1886 is = evas_object_is_in_output_rect(obj, 1886 is = evas_object_is_in_output_rect(obj,
1887 obj->layer->evas->pointer.x, 1887 obj->layer->evas->pointer.x,
1888 obj->layer->evas->pointer.y, 1, 1); 1888 obj->layer->evas->pointer.y, 1, 1);
1889 if ((is || was) && obj->cur.visible) 1889 if ((is || was) && obj->cur.visible)
1890 evas_event_feed_mouse_move(obj->layer->evas, 1890 evas_event_feed_mouse_move(obj->layer->evas,
1891 obj->layer->evas->pointer.x, 1891 obj->layer->evas->pointer.x,
1892 obj->layer->evas->pointer.y, 1892 obj->layer->evas->pointer.y,
1893 obj->layer->evas->last_timestamp, 1893 obj->layer->evas->last_timestamp,
1894 NULL); 1894 NULL);
1895 evas_object_inform_call_resize(obj); 1895 evas_object_inform_call_resize(obj);
1896} 1896}
1897 1897
@@ -1915,22 +1915,22 @@ _evas_object_text_recalc(Evas_Object *obj)
1915 1915
1916 if ((o->font) && (o->items)) 1916 if ((o->font) && (o->items))
1917 { 1917 {
1918 int w, h; 1918 int w, h;
1919 int l = 0, r = 0, t = 0, b = 0; 1919 int l = 0, r = 0, t = 0, b = 0;
1920 1920
1921 w = _evas_object_text_horiz_advance_get(obj, o); 1921 w = _evas_object_text_horiz_advance_get(obj, o);
1922 h = _evas_object_text_vert_advance_get(obj, o); 1922 h = _evas_object_text_vert_advance_get(obj, o);
1923 evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b); 1923 evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
1924 obj->cur.geometry.w = w + l + r; 1924 obj->cur.geometry.w = w + l + r;
1925 obj->cur.geometry.h = h + t + b; 1925 obj->cur.geometry.h = h + t + b;
1926//// obj->cur.cache.geometry.validity = 0; 1926//// obj->cur.cache.geometry.validity = 0;
1927 } 1927 }
1928 else 1928 else
1929 { 1929 {
1930 int t = 0, b = 0; 1930 int t = 0, b = 0;
1931 1931
1932 evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b); 1932 evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b);
1933 obj->cur.geometry.w = 0; 1933 obj->cur.geometry.w = 0;
1934 obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b; 1934 obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
1935//// obj->cur.cache.geometry.validity = 0; 1935//// obj->cur.cache.geometry.validity = 0;
1936 } 1936 }
diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c
index fbee90759d..434db0e372 100644
--- a/legacy/evas/src/lib/canvas/evas_object_textblock.c
+++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c
@@ -414,9 +414,9 @@ struct _Evas_Object_Textblock_Format
414 } font; 414 } font;
415 struct { 415 struct {
416 struct { 416 struct {
417 unsigned char r, g, b, a; 417 unsigned char r, g, b, a;
418 } normal, underline, underline2, underline_dash, outline, shadow, glow, glow2, backing, 418 } normal, underline, underline2, underline_dash, outline, shadow, glow, glow2, backing,
419 strikethrough; 419 strikethrough;
420 } color; 420 } color;
421 struct { 421 struct {
422 int l, r; 422 int l, r;
@@ -595,13 +595,13 @@ _style_replace(Evas_Textblock_Style *ts, const char *style_text)
595 if (ts->default_tag) free(ts->default_tag); 595 if (ts->default_tag) free(ts->default_tag);
596 while (ts->tags) 596 while (ts->tags)
597 { 597 {
598 Evas_Object_Style_Tag *tag; 598 Evas_Object_Style_Tag *tag;
599 599
600 tag = (Evas_Object_Style_Tag *)ts->tags; 600 tag = (Evas_Object_Style_Tag *)ts->tags;
601 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); 601 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag));
602 free(tag->tag.tag); 602 free(tag->tag.tag);
603 free(tag->tag.replace); 603 free(tag->tag.replace);
604 free(tag); 604 free(tag);
605 } 605 }
606 ts->default_tag = NULL; 606 ts->default_tag = NULL;
607 ts->tags = NULL; 607 ts->tags = NULL;
@@ -635,12 +635,12 @@ _style_match_tag(const Evas_Textblock_Style *ts, const char *s, size_t tag_len,
635 /* Try the style tags */ 635 /* Try the style tags */
636 EINA_INLIST_FOREACH(ts->tags, tag) 636 EINA_INLIST_FOREACH(ts->tags, tag)
637 { 637 {
638 if (tag->tag.tag_len != tag_len) continue; 638 if (tag->tag.tag_len != tag_len) continue;
639 if (!strncmp(tag->tag.tag, s, tag_len)) 639 if (!strncmp(tag->tag.tag, s, tag_len))
640 { 640 {
641 *replace_len = tag->tag.replace_len; 641 *replace_len = tag->tag.replace_len;
642 return tag->tag.replace; 642 return tag->tag.replace;
643 } 643 }
644 } 644 }
645 645
646 /* Try the default tags */ 646 /* Try the default tags */
@@ -677,9 +677,9 @@ _nodes_clear(const Evas_Object *obj)
677 o = (Evas_Object_Textblock *)(obj->object_data); 677 o = (Evas_Object_Textblock *)(obj->object_data);
678 while (o->text_nodes) 678 while (o->text_nodes)
679 { 679 {
680 Evas_Object_Textblock_Node_Text *n; 680 Evas_Object_Textblock_Node_Text *n;
681 681
682 n = o->text_nodes; 682 n = o->text_nodes;
683 o->text_nodes = _NODE_TEXT(eina_inlist_remove( 683 o->text_nodes = _NODE_TEXT(eina_inlist_remove(
684 EINA_INLIST_GET(o->text_nodes), EINA_INLIST_GET(n))); 684 EINA_INLIST_GET(o->text_nodes), EINA_INLIST_GET(n)));
685 _evas_textblock_node_text_free(n); 685 _evas_textblock_node_text_free(n);
@@ -1876,8 +1876,8 @@ _layout_format_ascent_descent_adjust(const Evas_Object *obj,
1876 1876
1877 if (fmt->font.font) 1877 if (fmt->font.font)
1878 { 1878 {
1879 // ascent = c->ENFN->font_max_ascent_get(c->ENDT, fmt->font.font); 1879 // ascent = c->ENFN->font_max_ascent_get(c->ENDT, fmt->font.font);
1880 // descent = c->ENFN->font_max_descent_get(c->ENDT, fmt->font.font); 1880 // descent = c->ENFN->font_max_descent_get(c->ENDT, fmt->font.font);
1881 ascent = ENFN->font_ascent_get(ENDT, fmt->font.font); 1881 ascent = ENFN->font_ascent_get(ENDT, fmt->font.font);
1882 descent = ENFN->font_descent_get(ENDT, fmt->font.font); 1882 descent = ENFN->font_descent_get(ENDT, fmt->font.font);
1883 if (fmt->linesize > 0) 1883 if (fmt->linesize > 0)
@@ -3599,7 +3599,7 @@ _layout_paragraph_reorder_lines(Evas_Object_Textblock_Paragraph *par)
3599 3599
3600static void 3600static void
3601_layout_paragraph_render(Evas_Object_Textblock *o, 3601_layout_paragraph_render(Evas_Object_Textblock *o,
3602 Evas_Object_Textblock_Paragraph *par) 3602 Evas_Object_Textblock_Paragraph *par)
3603{ 3603{
3604 if (par->rendered) 3604 if (par->rendered)
3605 return; 3605 return;
@@ -4548,12 +4548,12 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
4548 { 4548 {
4549 if (!key_start) 4549 if (!key_start)
4550 { 4550 {
4551 if (!isspace((unsigned char)(*p))) 4551 if (!isspace((unsigned char)(*p)))
4552 key_start = p; 4552 key_start = p;
4553 } 4553 }
4554 else if (!key_stop) 4554 else if (!key_stop)
4555 { 4555 {
4556 if ((*p == '=') || (isspace((unsigned char)(*p)))) 4556 if ((*p == '=') || (isspace((unsigned char)(*p))))
4557 key_stop = p; 4557 key_stop = p;
4558 } 4558 }
4559 else if (!val_start) 4559 else if (!val_start)
@@ -5954,14 +5954,14 @@ evas_textblock_cursor_paragraph_last(Evas_Textblock_Cursor *cur)
5954 { 5954 {
5955 node = _NODE_TEXT(EINA_INLIST_GET(node)->last); 5955 node = _NODE_TEXT(EINA_INLIST_GET(node)->last);
5956 cur->node = node; 5956 cur->node = node;
5957 cur->pos = 0; 5957 cur->pos = 0;
5958 5958
5959 evas_textblock_cursor_paragraph_char_last(cur); 5959 evas_textblock_cursor_paragraph_char_last(cur);
5960 } 5960 }
5961 else 5961 else
5962 { 5962 {
5963 cur->node = NULL; 5963 cur->node = NULL;
5964 cur->pos = 0; 5964 cur->pos = 0;
5965 5965
5966 } 5966 }
5967} 5967}
@@ -6300,8 +6300,8 @@ evas_textblock_cursor_line_char_first(Evas_Textblock_Cursor *cur)
6300 } 6300 }
6301 if (it) 6301 if (it)
6302 { 6302 {
6303 cur->pos = it->text_pos; 6303 cur->pos = it->text_pos;
6304 cur->node = it->text_node; 6304 cur->node = it->text_node;
6305 } 6305 }
6306} 6306}
6307 6307
@@ -6336,8 +6336,8 @@ evas_textblock_cursor_line_char_last(Evas_Textblock_Cursor *cur)
6336 { 6336 {
6337 size_t ind; 6337 size_t ind;
6338 6338
6339 cur->node = it->text_node; 6339 cur->node = it->text_node;
6340 cur->pos = it->text_pos; 6340 cur->pos = it->text_pos;
6341 if (it->type == EVAS_TEXTBLOCK_ITEM_TEXT) 6341 if (it->type == EVAS_TEXTBLOCK_ITEM_TEXT)
6342 { 6342 {
6343 ind = _ITEM_TEXT(it)->text_props.text_len - 1; 6343 ind = _ITEM_TEXT(it)->text_props.text_len - 1;
@@ -6874,8 +6874,8 @@ evas_textblock_cursor_line_set(Evas_Textblock_Cursor *cur, int line)
6874 it = (Evas_Object_Textblock_Item *)ln->items; 6874 it = (Evas_Object_Textblock_Item *)ln->items;
6875 if (it) 6875 if (it)
6876 { 6876 {
6877 cur->pos = it->text_pos; 6877 cur->pos = it->text_pos;
6878 cur->node = it->text_node; 6878 cur->node = it->text_node;
6879 } 6879 }
6880 else 6880 else
6881 { 6881 {
@@ -6897,19 +6897,19 @@ evas_textblock_cursor_compare(const Evas_Textblock_Cursor *cur1, const Evas_Text
6897 if ((!cur1->node) || (!cur2->node)) return 0; 6897 if ((!cur1->node) || (!cur2->node)) return 0;
6898 if (cur1->node == cur2->node) 6898 if (cur1->node == cur2->node)
6899 { 6899 {
6900 if (cur1->pos < cur2->pos) return -1; /* cur1 < cur2 */ 6900 if (cur1->pos < cur2->pos) return -1; /* cur1 < cur2 */
6901 else if (cur1->pos > cur2->pos) return 1; /* cur2 < cur1 */ 6901 else if (cur1->pos > cur2->pos) return 1; /* cur2 < cur1 */
6902 return 0; 6902 return 0;
6903 } 6903 }
6904 for (l1 = EINA_INLIST_GET(cur1->node), 6904 for (l1 = EINA_INLIST_GET(cur1->node),
6905 l2 = EINA_INLIST_GET(cur1->node); (l1) || (l2);) 6905 l2 = EINA_INLIST_GET(cur1->node); (l1) || (l2);)
6906 { 6906 {
6907 if (l1 == EINA_INLIST_GET(cur2->node)) return 1; /* cur2 < cur 1 */ 6907 if (l1 == EINA_INLIST_GET(cur2->node)) return 1; /* cur2 < cur 1 */
6908 else if (l2 == EINA_INLIST_GET(cur2->node)) return -1; /* cur1 < cur 2 */ 6908 else if (l2 == EINA_INLIST_GET(cur2->node)) return -1; /* cur1 < cur 2 */
6909 else if (!l1) return -1; /* cur1 < cur 2 */ 6909 else if (!l1) return -1; /* cur1 < cur 2 */
6910 else if (!l2) return 1; /* cur2 < cur 1 */ 6910 else if (!l2) return 1; /* cur2 < cur 1 */
6911 l1 = l1->prev; 6911 l1 = l1->prev;
6912 l2 = l2->next; 6912 l2 = l2->next;
6913 } 6913 }
6914 return 0; 6914 return 0;
6915} 6915}
@@ -7146,8 +7146,8 @@ _evas_textblock_changed(Evas_Object_Textblock *o, Evas_Object *obj)
7146 o->content_changed = 1; 7146 o->content_changed = 1;
7147 if (o->markup_text) 7147 if (o->markup_text)
7148 { 7148 {
7149 free(o->markup_text); 7149 free(o->markup_text);
7150 o->markup_text = NULL; 7150 o->markup_text = NULL;
7151 } 7151 }
7152 7152
7153 evas_object_change(obj); 7153 evas_object_change(obj);
@@ -7424,14 +7424,14 @@ evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const char *form
7424 format = n->format; 7424 format = n->format;
7425 if (!cur->node) 7425 if (!cur->node)
7426 { 7426 {
7427 o->format_nodes = _NODE_FORMAT(eina_inlist_append( 7427 o->format_nodes = _NODE_FORMAT(eina_inlist_append(
7428 EINA_INLIST_GET(o->format_nodes), 7428 EINA_INLIST_GET(o->format_nodes),
7429 EINA_INLIST_GET(n))); 7429 EINA_INLIST_GET(n)));
7430 cur->pos = 0; 7430 cur->pos = 0;
7431 n->text_node = (EINA_INLIST_GET(n)->prev) ? 7431 n->text_node = (EINA_INLIST_GET(n)->prev) ?
7432 _NODE_FORMAT(EINA_INLIST_GET(n)->prev)->text_node : 7432 _NODE_FORMAT(EINA_INLIST_GET(n)->prev)->text_node :
7433 o->text_nodes; 7433 o->text_nodes;
7434 cur->node = n->text_node; 7434 cur->node = n->text_node;
7435 } 7435 }
7436 else 7436 else
7437 { 7437 {
@@ -7616,12 +7616,12 @@ evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur)
7616 7616
7617 if (cur->pos == eina_ustrbuf_length_get(n->unicode)) 7617 if (cur->pos == eina_ustrbuf_length_get(n->unicode))
7618 { 7618 {
7619 n2 = _NODE_TEXT(EINA_INLIST_GET(n)->next); 7619 n2 = _NODE_TEXT(EINA_INLIST_GET(n)->next);
7620 if (n2) 7620 if (n2)
7621 { 7621 {
7622 cur->node = n2; 7622 cur->node = n2;
7623 cur->pos = 0; 7623 cur->pos = 0;
7624 } 7624 }
7625 } 7625 }
7626 7626
7627 _evas_textblock_cursors_update_offset(cur, n, ppos, -(ind - ppos)); 7627 _evas_textblock_cursors_update_offset(cur, n, ppos, -(ind - ppos));
@@ -7643,11 +7643,11 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
7643 o = (Evas_Object_Textblock *)(cur1->obj->object_data); 7643 o = (Evas_Object_Textblock *)(cur1->obj->object_data);
7644 if (evas_textblock_cursor_compare(cur1, cur2) > 0) 7644 if (evas_textblock_cursor_compare(cur1, cur2) > 0)
7645 { 7645 {
7646 Evas_Textblock_Cursor *tc; 7646 Evas_Textblock_Cursor *tc;
7647 7647
7648 tc = cur1; 7648 tc = cur1;
7649 cur1 = cur2; 7649 cur1 = cur2;
7650 cur2 = tc; 7650 cur2 = tc;
7651 } 7651 }
7652 n1 = cur1->node; 7652 n1 = cur1->node;
7653 n2 = cur2->node; 7653 n2 = cur2->node;
@@ -7789,11 +7789,11 @@ _evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1,
7789 if (cur1->obj != _cur2->obj) return NULL; 7789 if (cur1->obj != _cur2->obj) return NULL;
7790 if (evas_textblock_cursor_compare(cur1, _cur2) > 0) 7790 if (evas_textblock_cursor_compare(cur1, _cur2) > 0)
7791 { 7791 {
7792 const Evas_Textblock_Cursor *tc; 7792 const Evas_Textblock_Cursor *tc;
7793 7793
7794 tc = cur1; 7794 tc = cur1;
7795 cur1 = _cur2; 7795 cur1 = _cur2;
7796 _cur2 = tc; 7796 _cur2 = tc;
7797 } 7797 }
7798 /* Work on a local copy of the cur */ 7798 /* Work on a local copy of the cur */
7799 cur2 = alloca(sizeof(Evas_Textblock_Cursor)); 7799 cur2 = alloca(sizeof(Evas_Textblock_Cursor));
@@ -7908,11 +7908,11 @@ _evas_textblock_cursor_range_text_plain_get(const Evas_Textblock_Cursor *cur1, c
7908 if (cur1->obj != _cur2->obj) return NULL; 7908 if (cur1->obj != _cur2->obj) return NULL;
7909 if (evas_textblock_cursor_compare(cur1, _cur2) > 0) 7909 if (evas_textblock_cursor_compare(cur1, _cur2) > 0)
7910 { 7910 {
7911 const Evas_Textblock_Cursor *tc; 7911 const Evas_Textblock_Cursor *tc;
7912 7912
7913 tc = cur1; 7913 tc = cur1;
7914 cur1 = _cur2; 7914 cur1 = _cur2;
7915 _cur2 = tc; 7915 _cur2 = tc;
7916 } 7916 }
7917 n1 = cur1->node; 7917 n1 = cur1->node;
7918 n2 = _cur2->node; 7918 n2 = _cur2->node;
@@ -8364,8 +8364,8 @@ _evas_textblock_cursor_char_pen_geometry_common_get(int (*query_func) (void *dat
8364 { 8364 {
8365 x = ln->x; 8365 x = ln->x;
8366 } 8366 }
8367 y = ln->par->y + ln->y; 8367 y = ln->par->y + ln->y;
8368 h = ln->h; 8368 h = ln->h;
8369 } 8369 }
8370 else if (ln && fi) 8370 else if (ln && fi)
8371 { 8371 {
@@ -8403,7 +8403,7 @@ _evas_textblock_cursor_char_pen_geometry_common_get(int (*query_func) (void *dat
8403 } 8403 }
8404 else 8404 else
8405 { 8405 {
8406 return -1; 8406 return -1;
8407 } 8407 }
8408 if (cx) *cx = x; 8408 if (cx) *cx = x;
8409 if (cy) *cy = y; 8409 if (cy) *cy = y;
@@ -8981,11 +8981,11 @@ evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, cons
8981 if (!o->formatted.valid) _relayout(cur1->obj); 8981 if (!o->formatted.valid) _relayout(cur1->obj);
8982 if (evas_textblock_cursor_compare(cur1, cur2) > 0) 8982 if (evas_textblock_cursor_compare(cur1, cur2) > 0)
8983 { 8983 {
8984 const Evas_Textblock_Cursor *tc; 8984 const Evas_Textblock_Cursor *tc;
8985 8985
8986 tc = cur1; 8986 tc = cur1;
8987 cur1 = cur2; 8987 cur1 = cur2;
8988 cur2 = tc; 8988 cur2 = tc;
8989 } 8989 }
8990 8990
8991 ln1 = ln2 = NULL; 8991 ln1 = ln2 = NULL;
@@ -9017,12 +9017,12 @@ evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, cons
9017 } 9017 }
9018 while (lni && (lni != ln2)) 9018 while (lni && (lni != ln2))
9019 { 9019 {
9020 tr = calloc(1, sizeof(Evas_Textblock_Rectangle)); 9020 tr = calloc(1, sizeof(Evas_Textblock_Rectangle));
9021 rects = eina_list_append(rects, tr); 9021 rects = eina_list_append(rects, tr);
9022 tr->x = lni->x; 9022 tr->x = lni->x;
9023 tr->y = lni->par->y + lni->y; 9023 tr->y = lni->par->y + lni->y;
9024 tr->h = lni->h; 9024 tr->h = lni->h;
9025 tr->w = lni->w; 9025 tr->w = lni->w;
9026 plni = lni; 9026 plni = lni;
9027 lni = (Evas_Object_Textblock_Line *) EINA_INLIST_GET(lni)->next; 9027 lni = (Evas_Object_Textblock_Line *) EINA_INLIST_GET(lni)->next;
9028 if (!lni && (plni->par != ln2->par)) 9028 if (!lni && (plni->par != ln2->par))
@@ -9107,8 +9107,8 @@ _evas_object_textblock_clear_all(Evas_Object *obj)
9107 TB_HEAD(); 9107 TB_HEAD();
9108 if (o->paragraphs) 9108 if (o->paragraphs)
9109 { 9109 {
9110 _paragraphs_free(obj, o->paragraphs); 9110 _paragraphs_free(obj, o->paragraphs);
9111 o->paragraphs = NULL; 9111 o->paragraphs = NULL;
9112 } 9112 }
9113 9113
9114 _nodes_clear(obj); 9114 _nodes_clear(obj);
@@ -9116,8 +9116,8 @@ _evas_object_textblock_clear_all(Evas_Object *obj)
9116 o->cursor->pos = 0; 9116 o->cursor->pos = 0;
9117 EINA_LIST_FOREACH(o->cursors, l, cur) 9117 EINA_LIST_FOREACH(o->cursors, l, cur)
9118 { 9118 {
9119 cur->node = NULL; 9119 cur->node = NULL;
9120 cur->pos = 0; 9120 cur->pos = 0;
9121 9121
9122 } 9122 }
9123 9123
@@ -9280,7 +9280,7 @@ evas_object_textblock_size_native_get(const Evas_Object *obj, Evas_Coord *w, Eva
9280 o->native.w = wmax; 9280 o->native.w = wmax;
9281 o->native.h = hmax; 9281 o->native.h = hmax;
9282 9282
9283 o->native.valid = 1; 9283 o->native.valid = 1;
9284 o->content_changed = 0; 9284 o->content_changed = 0;
9285 o->format_changed = EINA_FALSE; 9285 o->format_changed = EINA_FALSE;
9286 } 9286 }
@@ -9383,11 +9383,11 @@ evas_object_textblock_free(Evas_Object *obj)
9383 free(o->cursor); 9383 free(o->cursor);
9384 while (o->cursors) 9384 while (o->cursors)
9385 { 9385 {
9386 Evas_Textblock_Cursor *cur; 9386 Evas_Textblock_Cursor *cur;
9387 9387
9388 cur = (Evas_Textblock_Cursor *)o->cursors->data; 9388 cur = (Evas_Textblock_Cursor *)o->cursors->data;
9389 o->cursors = eina_list_remove_list(o->cursors, o->cursors); 9389 o->cursors = eina_list_remove_list(o->cursors, o->cursors);
9390 free(cur); 9390 free(cur);
9391 } 9391 }
9392 if (o->repch) eina_stringshare_del(o->repch); 9392 if (o->repch) eina_stringshare_del(o->repch);
9393 if (o->ellip_ti) _item_free(obj, NULL, _ITEM(o->ellip_ti)); 9393 if (o->ellip_ti) _item_free(obj, NULL, _ITEM(o->ellip_ti));
@@ -9407,17 +9407,17 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
9407 int cx, cy, cw, ch, clip; 9407 int cx, cy, cw, ch, clip;
9408 const char vals[5][5] = 9408 const char vals[5][5] =
9409 { 9409 {
9410 {0, 1, 2, 1, 0}, 9410 {0, 1, 2, 1, 0},
9411 {1, 3, 4, 3, 1}, 9411 {1, 3, 4, 3, 1},
9412 {2, 4, 5, 4, 2}, 9412 {2, 4, 5, 4, 2},
9413 {1, 3, 4, 3, 1}, 9413 {1, 3, 4, 3, 1},
9414 {0, 1, 2, 1, 0} 9414 {0, 1, 2, 1, 0}
9415 }; 9415 };
9416 9416
9417 /* render object to surface with context, and offxet by x,y */ 9417 /* render object to surface with context, and offxet by x,y */
9418 o = (Evas_Object_Textblock *)(obj->object_data); 9418 o = (Evas_Object_Textblock *)(obj->object_data);
9419 obj->layer->evas->engine.func->context_multiplier_unset(output, 9419 obj->layer->evas->engine.func->context_multiplier_unset(output,
9420 context); 9420 context);
9421 /* FIXME: This clipping is just until we fix inset handling correctly. */ 9421 /* FIXME: This clipping is just until we fix inset handling correctly. */
9422 ENFN->context_clip_clip(output, context, 9422 ENFN->context_clip_clip(output, context,
9423 obj->cur.geometry.x + x, 9423 obj->cur.geometry.x + x,
@@ -9813,26 +9813,26 @@ evas_object_textblock_render_pre(Evas_Object *obj)
9813 (obj->cur.geometry.h != o->last_h)))) 9813 (obj->cur.geometry.h != o->last_h))))
9814 { 9814 {
9815 _relayout(obj); 9815 _relayout(obj);
9816 o->redraw = 0; 9816 o->redraw = 0;
9817 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 9817 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
9818 is_v = evas_object_is_visible(obj); 9818 is_v = evas_object_is_visible(obj);
9819 was_v = evas_object_was_visible(obj); 9819 was_v = evas_object_was_visible(obj);
9820 goto done; 9820 goto done;
9821 } 9821 }
9822 if (o->redraw) 9822 if (o->redraw)
9823 { 9823 {
9824 o->redraw = 0; 9824 o->redraw = 0;
9825 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 9825 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
9826 is_v = evas_object_is_visible(obj); 9826 is_v = evas_object_is_visible(obj);
9827 was_v = evas_object_was_visible(obj); 9827 was_v = evas_object_was_visible(obj);
9828 goto done; 9828 goto done;
9829 } 9829 }
9830 /* if someone is clipping this obj - go calculate the clipper */ 9830 /* if someone is clipping this obj - go calculate the clipper */
9831 if (obj->cur.clipper) 9831 if (obj->cur.clipper)
9832 { 9832 {
9833 if (obj->cur.cache.clip.dirty) 9833 if (obj->cur.cache.clip.dirty)
9834 evas_object_clip_recalc(obj->cur.clipper); 9834 evas_object_clip_recalc(obj->cur.clipper);
9835 obj->cur.clipper->func->render_pre(obj->cur.clipper); 9835 obj->cur.clipper->func->render_pre(obj->cur.clipper);
9836 } 9836 }
9837 /* now figure what changed and add draw rects */ 9837 /* now figure what changed and add draw rects */
9838 /* if it just became visible or invisible */ 9838 /* if it just became visible or invisible */
@@ -9840,8 +9840,8 @@ evas_object_textblock_render_pre(Evas_Object *obj)
9840 was_v = evas_object_was_visible(obj); 9840 was_v = evas_object_was_visible(obj);
9841 if (is_v != was_v) 9841 if (is_v != was_v)
9842 { 9842 {
9843 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); 9843 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
9844 goto done; 9844 goto done;
9845 } 9845 }
9846 if (obj->changed_map) 9846 if (obj->changed_map)
9847 { 9847 {
@@ -9856,8 +9856,8 @@ evas_object_textblock_render_pre(Evas_Object *obj)
9856 /* if we restacked (layer or just within a layer) and don't clip anyone */ 9856 /* if we restacked (layer or just within a layer) and don't clip anyone */
9857 if (obj->restack) 9857 if (obj->restack)
9858 { 9858 {
9859 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 9859 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
9860 goto done; 9860 goto done;
9861 } 9861 }
9862 /* if it changed color */ 9862 /* if it changed color */
9863 if ((obj->cur.color.r != obj->prev.color.r) || 9863 if ((obj->cur.color.r != obj->prev.color.r) ||
@@ -9865,8 +9865,8 @@ evas_object_textblock_render_pre(Evas_Object *obj)
9865 (obj->cur.color.b != obj->prev.color.b) || 9865 (obj->cur.color.b != obj->prev.color.b) ||
9866 (obj->cur.color.a != obj->prev.color.a)) 9866 (obj->cur.color.a != obj->prev.color.a))
9867 { 9867 {
9868 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 9868 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
9869 goto done; 9869 goto done;
9870 } 9870 }
9871 /* if it changed geometry - and obviously not visibility or color */ 9871 /* if it changed geometry - and obviously not visibility or color */
9872 /* calculate differences since we have a constant color fill */ 9872 /* calculate differences since we have a constant color fill */
@@ -9876,8 +9876,8 @@ evas_object_textblock_render_pre(Evas_Object *obj)
9876 (obj->cur.geometry.w != obj->prev.geometry.w) || 9876 (obj->cur.geometry.w != obj->prev.geometry.w) ||
9877 (obj->cur.geometry.h != obj->prev.geometry.h)) 9877 (obj->cur.geometry.h != obj->prev.geometry.h))
9878 { 9878 {
9879 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 9879 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
9880 goto done; 9880 goto done;
9881 } 9881 }
9882 done: 9882 done:
9883 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, obj, is_v, was_v); 9883 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, obj, is_v, was_v);
@@ -9953,8 +9953,8 @@ evas_object_textblock_coords_recalc(Evas_Object *obj)
9953 (((o->valign != 0.0) || (o->have_ellipsis)) && 9953 (((o->valign != 0.0) || (o->have_ellipsis)) &&
9954 (obj->cur.geometry.h != o->last_h))) 9954 (obj->cur.geometry.h != o->last_h)))
9955 { 9955 {
9956 o->formatted.valid = 0; 9956 o->formatted.valid = 0;
9957 o->changed = 1; 9957 o->changed = 1;
9958 } 9958 }
9959} 9959}
9960 9960
diff --git a/legacy/evas/src/lib/canvas/evas_object_textgrid.c b/legacy/evas/src/lib/canvas/evas_object_textgrid.c
index bcbfeff4b5..f04751873b 100644
--- a/legacy/evas/src/lib/canvas/evas_object_textgrid.c
+++ b/legacy/evas/src/lib/canvas/evas_object_textgrid.c
@@ -721,9 +721,9 @@ evas_object_textgrid_render_pre(Evas_Object *obj)
721 /* if someone is clipping this obj - go calculate the clipper */ 721 /* if someone is clipping this obj - go calculate the clipper */
722 if (obj->cur.clipper) 722 if (obj->cur.clipper)
723 { 723 {
724 if (obj->cur.cache.clip.dirty) 724 if (obj->cur.cache.clip.dirty)
725 evas_object_clip_recalc(obj->cur.clipper); 725 evas_object_clip_recalc(obj->cur.clipper);
726 obj->cur.clipper->func->render_pre(obj->cur.clipper); 726 obj->cur.clipper->func->render_pre(obj->cur.clipper);
727 } 727 }
728 /* now figure what changed and add draw rects */ 728 /* now figure what changed and add draw rects */
729 /* if it just became visible or invisible */ 729 /* if it just became visible or invisible */
@@ -731,8 +731,8 @@ evas_object_textgrid_render_pre(Evas_Object *obj)
731 was_v = evas_object_was_visible(obj); 731 was_v = evas_object_was_visible(obj);
732 if (is_v != was_v) 732 if (is_v != was_v)
733 { 733 {
734 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); 734 evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
735 goto done; 735 goto done;
736 } 736 }
737 if (obj->changed_map) 737 if (obj->changed_map)
738 { 738 {
@@ -747,8 +747,8 @@ evas_object_textgrid_render_pre(Evas_Object *obj)
747 /* if we restacked (layer or just within a layer) and dont clip anyone */ 747 /* if we restacked (layer or just within a layer) and dont clip anyone */
748 if (obj->restack) 748 if (obj->restack)
749 { 749 {
750 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 750 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
751 goto done; 751 goto done;
752 } 752 }
753 /* if it changed color */ 753 /* if it changed color */
754 if ((obj->cur.color.r != obj->prev.color.r) || 754 if ((obj->cur.color.r != obj->prev.color.r) ||
@@ -756,8 +756,8 @@ evas_object_textgrid_render_pre(Evas_Object *obj)
756 (obj->cur.color.b != obj->prev.color.b) || 756 (obj->cur.color.b != obj->prev.color.b) ||
757 (obj->cur.color.a != obj->prev.color.a)) 757 (obj->cur.color.a != obj->prev.color.a))
758 { 758 {
759 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 759 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
760 goto done; 760 goto done;
761 } 761 }
762 /* if it changed geometry - and obviously not visibility or color */ 762 /* if it changed geometry - and obviously not visibility or color */
763 /* calculate differences since we have a constant color fill */ 763 /* calculate differences since we have a constant color fill */
@@ -767,18 +767,18 @@ evas_object_textgrid_render_pre(Evas_Object *obj)
767 (obj->cur.geometry.w != obj->prev.geometry.w) || 767 (obj->cur.geometry.w != obj->prev.geometry.w) ||
768 (obj->cur.geometry.h != obj->prev.geometry.h)) 768 (obj->cur.geometry.h != obj->prev.geometry.h))
769 { 769 {
770 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 770 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
771 goto done; 771 goto done;
772 } 772 }
773 if (obj->cur.render_op != obj->prev.render_op) 773 if (obj->cur.render_op != obj->prev.render_op)
774 { 774 {
775 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 775 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
776 goto done; 776 goto done;
777 } 777 }
778 if (obj->cur.scale != obj->prev.scale) 778 if (obj->cur.scale != obj->prev.scale)
779 { 779 {
780 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); 780 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
781 goto done; 781 goto done;
782 } 782 }
783 783
784 if (o->changed) 784 if (o->changed)