aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/edje
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-06-25 15:19:33 -0400
committerChris Michael <cp.michael@samsung.com>2018-06-25 15:19:33 -0400
commit7bbf18a950c027a365fea1b88e8dc3f16bb81abe (patch)
tree41f7f7e7f4ea581950f8f3e40ed825fddbde3c78 /src/lib/edje
parentedje: remove recalc during part_recursive_get (diff)
downloadefl-7bbf18a950c027a365fea1b88e8dc3f16bb81abe.tar.gz
edje: return available text data in part_text_get without recalc when possible
Summary: based on the codepaths taken when setting text to a part, a recalc should only be necessary when returning markup from a textblock, and this is only the case because the function returns a non-allocated string in the case where the object is textblock and (legacy || not fetching markup), the current text is guaranteed to be set on this pointer. the reason a recalc is necessary for the markup case is because edje TEXTBLOCK parts only set text to the internal textblock during a recalc, meaning that attempting to fetch text on a just-set part will fail; this does not mean that the internal textblock object doesn't exist, only that the text has not yet been set to it Depends on https://phab.enlightenment.org/D6422 Reviewers: herdsman, devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6423
Diffstat (limited to 'src/lib/edje')
-rw-r--r--src/lib/edje/edje_util.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index 7ab54bb4bd..a4d7276f1d 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -2080,18 +2080,22 @@ _edje_efl_text_text_get(const Eo *obj EINA_UNUSED, Edje *ed, const char *part,
{
const char *entry;
if (legacy)
- {
- entry = evas_object_textblock_text_markup_get(rp->object);
- }
+ entry = rp->typedata.text->text;
else
{
if (get_markup)
{
+#ifdef EDJE_CALC_CACHE
+ if (rp->invalidate)
+#else
+ if (ed->dirty)
+#endif
+ _edje_recalc_do(ed);
entry = efl_text_markup_get(rp->object);
}
else
{
- entry = efl_text_get(rp->object);
+ entry = rp->typedata.text->text;
}
}