need_calc = evas_object_smart_need_recalculate_get(ed->obj);
evas_object_smart_need_recalculate_set(ed->obj, 0);
if (!ed->dirty) return;
- ed->have_mapped_part = EINA_FALSE;
ed->dirty = EINA_FALSE;
ed->state++;
for (i = 0; i < ed->table_parts_size; i++)
(statep1 >= ep->param1.state) ||
proxy_invalidate ||
state ||
+ (ep->map_on && ed->have_mapped_part) ||
((ep->part->type == EDJE_PART_TYPE_TEXT ||
ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) &&
ed->text_part_change))
(statep2 >= ep->param2->state) ||
proxy_invalidate ||
state ||
+ (ep->map_on && ed->have_mapped_part) ||
((ep->part->type == EDJE_PART_TYPE_TEXT ||
ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) &&
ed->text_part_change))
static Evas_Map *map = NULL;
ed->have_mapped_part = EINA_TRUE;
+ ep->map_on = EINA_TRUE;
// create map and populate with part geometry
if (!map) map = evas_map_new(4);
}
else
{
+ ep->map_on = EINA_FALSE;
+
if (ep->nested_smart)
{ /* Cancel map of smart obj holding nested parts */
eo_do(ep->nested_smart,
Evas_Coord x = va_arg(*list, Evas_Coord);
Evas_Coord y = va_arg(*list, Evas_Coord);
Edje *ed = _pd;
+ unsigned int i;
if ((ed->x == x) && (ed->y == y)) return;
ed->x = x;
return;
}
- if (ed->have_mapped_part)
+ for (i = 0; i < ed->table_parts_size; i++)
{
- ed->dirty = EINA_TRUE;
- _edje_recalc_do(ed);
- }
- else
- {
- unsigned int i;
+ Edje_Real_Part *ep;
- for (i = 0; i < ed->table_parts_size; i++)
+ ep = ed->table_parts[i];
+ if ((ep->type == EDJE_RP_TYPE_TEXT) && (ep->typedata.text))
{
- Edje_Real_Part *ep;
-
- ep = ed->table_parts[i];
- if ((ep->type == EDJE_RP_TYPE_TEXT) && (ep->typedata.text))
- {
- evas_object_move(ep->object,
- ed->x + ep->x + ep->typedata.text->offset.x,
- ed->y + ep->y + ep->typedata.text->offset.y);
- }
- else
+ evas_object_move(ep->object,
+ ed->x + ep->x + ep->typedata.text->offset.x,
+ ed->y + ep->y + ep->typedata.text->offset.y);
+ }
+ else
+ {
+ evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y);
+ if ((ep->type == EDJE_RP_TYPE_SWALLOW) &&
+ (ep->typedata.swallow))
{
- evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y);
- if ((ep->type == EDJE_RP_TYPE_SWALLOW) &&
- (ep->typedata.swallow))
- {
- if (ep->typedata.swallow->swallowed_object)
- evas_object_move
- (ep->typedata.swallow->swallowed_object,
- ed->x + ep->x,
- ed->y + ep->y);
- }
+ if (ep->typedata.swallow->swallowed_object)
+ evas_object_move
+ (ep->typedata.swallow->swallowed_object,
+ ed->x + ep->x,
+ ed->y + ep->y);
}
- if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
- _edje_entry_real_part_configure(ed, ep);
}
+ if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+ _edje_entry_real_part_configure(ed, ep);
}
+
+ if (ed->have_mapped_part)
+ {
+ ed->dirty = EINA_TRUE;
+ _edje_recalc_do(ed);
+ ed->have_mapped_part = EINA_FALSE;
+ }
+
// _edje_emit(ed, "move", NULL);
}