From 0a75de51f0eb11d7f4b72358572fcfcfe6cfd154 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Tue, 9 Sep 2008 23:41:42 +0000 Subject: [PATCH] Revert edje calculate optimizations. Edje is tricky, it's event processing is too weird and Cedric's changes to make it work are not working as expected. Edje freezes itself while processing signals, but in mouse down cb it forces recalculate, which seems was previously ignored, but now they are not. We should look at how to fix this and then re-apply this patch. SVN revision: 35908 --- legacy/edje/src/lib/edje_calc.c | 12 +------ legacy/edje/src/lib/edje_private.h | 2 -- legacy/edje/src/lib/edje_smart.c | 13 +------ legacy/edje/src/lib/edje_util.c | 56 +++--------------------------- 4 files changed, 6 insertions(+), 77 deletions(-) diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index c946eb3998..4272f3699d 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -135,14 +135,6 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl void _edje_recalc(Edje *ed) -{ - if (ed->postponed) return ; - evas_object_smart_changed(ed->obj); - ed->postponed = 1; -} - -void -_edje_recalc_do(Edje *ed) { int i; @@ -150,8 +142,7 @@ _edje_recalc_do(Edje *ed) if (ed->freeze) { ed->recalc = 1; - if (!ed->calc_only && - !ed->postponed) return; + if (!ed->calc_only) return; } for (i = 0; i < ed->table_parts_size; i++) { @@ -170,7 +161,6 @@ _edje_recalc_do(Edje *ed) _edje_part_recalc(ed, ep, (~ep->calculated) & FLAG_XY); } ed->dirty = 0; - ed->postponed = 0; if (!ed->calc_only) ed->recalc = 0; } diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index 79d8149eb4..7db5d37614 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -682,7 +682,6 @@ struct _Edje unsigned short walking_actions : 1; unsigned short block_break : 1; unsigned short delete_me : 1; - unsigned short postponed : 1; }; struct _Edje_Real_Part @@ -1010,7 +1009,6 @@ void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos); Edje_Part_Description *_edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *name, double val); void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, double v1, const char *d2, double v2); void _edje_recalc(Edje *ed); -void _edje_recalc_do(Edje *ed); int _edje_part_dragable_calc(Edje *ed, Edje_Real_Part *ep, double *x, double *y); void _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, double x, double y); diff --git a/legacy/edje/src/lib/edje_smart.c b/legacy/edje/src/lib/edje_smart.c index a3b23abc53..5ae7c57638 100644 --- a/legacy/edje/src/lib/edje_smart.c +++ b/legacy/edje/src/lib/edje_smart.c @@ -13,7 +13,6 @@ static void _edje_smart_hide(Evas_Object * obj); static void _edje_smart_color_set(Evas_Object * obj, int r, int g, int b, int a); static void _edje_smart_clip_set(Evas_Object * obj, Evas_Object * clip); static void _edje_smart_clip_unset(Evas_Object * obj); -static void _edje_smart_calculate(Evas_Object * obj); static Evas_Smart *_edje_smart = NULL; @@ -46,7 +45,7 @@ edje_object_add(Evas *evas) _edje_smart_color_set, _edje_smart_clip_set, _edje_smart_clip_unset, - _edje_smart_calculate, + NULL, NULL }; _edje_smart = evas_smart_class_new(&sc); @@ -239,13 +238,3 @@ _edje_smart_clip_unset(Evas_Object * obj) evas_object_clip_unset(ed->clipper); // _edje_emit(ed, "clip_unset", NULL); } - -static void -_edje_smart_calculate(Evas_Object *obj) -{ - Edje *ed; - - ed = evas_object_smart_data_get(obj); - if (!ed) return; - _edje_recalc_do(ed); -} diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index e5ee43199b..bb45a0b9b6 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -735,10 +735,6 @@ edje_object_part_object_get(const Evas_Object *obj, const char *part) ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp->object; @@ -772,10 +768,6 @@ edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coo if (h) *h = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -856,10 +848,6 @@ edje_object_part_text_get(const Evas_Object *obj, const char *part) ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; if (rp->part->type == EDJE_PART_TYPE_TEXT) @@ -887,10 +875,6 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw ed = _edje_fetch(obj); if ((!ed) || (!part)) return; - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return; if (rp->part->type != EDJE_PART_TYPE_SWALLOW) return; @@ -1057,7 +1041,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow) rp->swallow_params.max.w = 0; rp->swallow_params.max.h = 0; rp->edje->dirty = 1; - _edje_recalc_do(rp->edje); + _edje_recalc(rp->edje); return; } } @@ -1075,10 +1059,6 @@ edje_object_part_swallow_get(const Evas_Object *obj, const char *part) ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp->swallowed_object; @@ -1128,10 +1108,6 @@ edje_object_size_max_get(const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *m if (maxh) *maxh = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - if (ed->collection->prop.max.w == 0) { /* XXX TODO: convert maxw to 0, fix things that break. */ @@ -1169,7 +1145,7 @@ edje_object_calc_force(Evas_Object *obj) ed->dirty = 1; pf = ed->freeze; ed->freeze = 0; - _edje_recalc_do(ed); + _edje_recalc(ed); ed->freeze = pf; } @@ -1231,7 +1207,7 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co ok = 0; ed->dirty = 1; - _edje_recalc_do(ed); + _edje_recalc(ed); if (reset_maxwh) { maxw = 0; @@ -1335,10 +1311,6 @@ edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val if (val_ret) *val_ret = 0; return ""; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -1383,10 +1355,6 @@ edje_object_part_drag_dir_get(const Evas_Object *obj, const char *part) ed = _edje_fetch(obj); if ((!ed) || (!part)) return EDJE_DRAG_DIR_NONE; - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return EDJE_DRAG_DIR_NONE; if ((rp->part->dragable.x) && (rp->part->dragable.y)) return EDJE_DRAG_DIR_XY; @@ -1451,10 +1419,6 @@ edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double if (dy) *dy = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -1520,10 +1484,6 @@ edje_object_part_drag_size_get(const Evas_Object *obj, const char *part, double if (dh) *dh = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -1582,10 +1542,6 @@ edje_object_part_drag_step_get(const Evas_Object *obj, const char *part, double if (dy) *dy = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -1644,10 +1600,6 @@ edje_object_part_drag_page_get(const Evas_Object *obj, const char *part, double if (dy) *dy = 0; return; } - - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -2165,5 +2117,5 @@ _edje_real_part_swallow(Edje_Real_Part *rp, Evas_Object *obj_swallow) evas_object_precise_is_inside_set(obj_swallow, 1); rp->edje->dirty = 1; - _edje_recalc_do(rp->edje); + _edje_recalc(rp->edje); }