Edje: recalc edje before fetching the real part

Summary:
There are many calls to `_edje_real_part_recursive_get`. Though, it is
not guaranteed that the Edje object had instantiated all of the real
parts.

This change makes edje to always recalc before retrieving the real part.

The D6364 patch raised a good point, but presented a local fix, where
it seems that a global fix such as this is needed, instead.

The local fix is removed in favor of this. Test suite still passes.

ref T7057

@fix

Test Plan: See T7057

Reviewers: devilhorns

Subscribers: cedric, zmike, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6365
This commit is contained in:
Daniel Hirt 2018-06-22 12:46:40 +03:00
parent c9979ca4c0
commit 8f95b17f39
1 changed files with 2 additions and 3 deletions

View File

@ -2052,9 +2052,6 @@ _edje_efl_text_text_get(const Eo *obj EINA_UNUSED, Edje *ed, const char *part,
if ((!ed) || (!part)) return NULL;
/* Need to recalc before providing the object. */
_edje_recalc_do(ed);
rp = _edje_real_part_recursive_get(&ed, part);
if (!rp) return NULL;
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
@ -5221,6 +5218,8 @@ _edje_real_part_recursive_get(Edje **ed, const char *part)
path = eina_str_split(part, EDJE_PART_PATH_SEPARATOR_STRING, 0);
if (!path) return NULL;
_edje_recalc_do(*ed);
rp = _edje_real_part_recursive_get_helper(ed, path);
free(*path);