parent
e1e7256359
commit
d044a0245a
|
@ -135,6 +135,14 @@ _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;
|
||||
|
||||
|
@ -168,6 +176,7 @@ _edje_recalc(Edje *ed)
|
|||
_edje_part_recalc(ed, ep, (~ep->calculated) & FLAG_XY);
|
||||
}
|
||||
ed->dirty = 0;
|
||||
ed->postponed = 0;
|
||||
if (!ed->calc_only) ed->recalc = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ _edje_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
}
|
||||
ed->dirty = 1;
|
||||
}
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
/*
|
||||
_edje_thaw(ed);
|
||||
_edje_unref(ed);
|
||||
|
@ -141,7 +141,7 @@ _edje_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
_edje_emit(ed, "drag", rp->part->name);
|
||||
ed->dirty = 1;
|
||||
rp->drag.need_reset = 1;
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -164,7 +164,7 @@ _edje_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
rp->clicked_button = ev->button;
|
||||
rp->still_in = 1;
|
||||
}
|
||||
// _edje_recalc(ed);
|
||||
// _edje_recalc_do(ed);
|
||||
_edje_thaw(ed);
|
||||
_edje_unref(ed);
|
||||
return;
|
||||
|
@ -228,7 +228,7 @@ _edje_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
rp->clicked_button = 0;
|
||||
rp->still_in = 0;
|
||||
|
||||
// _edje_recalc(ed);
|
||||
// _edje_recalc_do(ed);
|
||||
_edje_thaw(ed);
|
||||
_edje_unref(ed);
|
||||
return;
|
||||
|
@ -284,7 +284,7 @@ _edje_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
rp->drag.tmp.y = ev->cur.canvas.y - rp->drag.down.y;
|
||||
ed->dirty = 1;
|
||||
}
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
}
|
||||
if ((rp->part->dragable.x) || (rp->part->dragable.y))
|
||||
{
|
||||
|
@ -301,7 +301,7 @@ _edje_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
|
|||
if (!ignored)
|
||||
_edje_emit(ed, "drag", rp->part->name);
|
||||
ed->dirty = 1;
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -676,6 +676,7 @@ 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
|
||||
|
@ -1005,6 +1006,7 @@ 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);
|
||||
|
||||
|
|
|
@ -783,7 +783,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const
|
|||
_edje_embryo_test_run(ed, fname, ssig, ssrc);
|
||||
_edje_emit(ed, "program,stop", pr->name);
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -13,6 +13,7 @@ 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;
|
||||
|
||||
|
@ -45,7 +46,7 @@ edje_object_add(Evas *evas)
|
|||
_edje_smart_color_set,
|
||||
_edje_smart_clip_set,
|
||||
_edje_smart_clip_unset,
|
||||
NULL,
|
||||
_edje_smart_calculate,
|
||||
NULL
|
||||
};
|
||||
_edje_smart = evas_smart_class_new(&sc);
|
||||
|
@ -238,3 +239,13 @@ _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);
|
||||
}
|
||||
|
|
|
@ -787,6 +787,10 @@ 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;
|
||||
|
@ -820,6 +824,10 @@ 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)
|
||||
{
|
||||
|
@ -900,6 +908,10 @@ 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)
|
||||
|
@ -927,6 +939,10 @@ 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;
|
||||
|
@ -1093,7 +1109,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(rp->edje);
|
||||
_edje_recalc_do(rp->edje);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1111,6 +1127,10 @@ 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;
|
||||
|
@ -1160,6 +1180,10 @@ 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. */
|
||||
|
@ -1202,7 +1226,7 @@ edje_object_calc_force(Evas_Object *obj)
|
|||
_edje_freeze_val = 0;
|
||||
ed->freeze = 0;
|
||||
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
|
||||
ed->freeze = pf;
|
||||
_edje_freeze_val = pf2;
|
||||
|
@ -1266,7 +1290,7 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co
|
|||
|
||||
ok = 0;
|
||||
ed->dirty = 1;
|
||||
_edje_recalc(ed);
|
||||
_edje_recalc_do(ed);
|
||||
if (reset_maxwh)
|
||||
{
|
||||
maxw = 0;
|
||||
|
@ -1370,6 +1394,10 @@ 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)
|
||||
{
|
||||
|
@ -1414,6 +1442,10 @@ 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;
|
||||
|
@ -1478,6 +1510,10 @@ 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)
|
||||
{
|
||||
|
@ -1543,6 +1579,10 @@ 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)
|
||||
{
|
||||
|
@ -1601,6 +1641,10 @@ 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)
|
||||
{
|
||||
|
@ -1659,6 +1703,10 @@ 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)
|
||||
{
|
||||
|
@ -2176,5 +2224,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(rp->edje);
|
||||
_edje_recalc_do(rp->edje);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue