forked from enlightenment/efl
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
This commit is contained in:
parent
c1c8a18b54
commit
0a75de51f0
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue