summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-09-27 09:30:44 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-09-27 09:30:44 +0300
commit11cad255fcec1f93e61e6f53c3da1fff0bc9f44c (patch)
tree7051980adae55d8369eddaba2b3acd9b133334fb
parent786db5d1cb61de864956bdfd794b850dc7b58ddf (diff)
downloadefl-11cad255fcec1f93e61e6f53c3da1fff0bc9f44c.tar.gz
Edje text: return markup only in legacy
Should use efl_text_markup_get for non-legacy usage (i.e. efl_part).
-rw-r--r--src/lib/edje/edje_part_text.c2
-rw-r--r--src/lib/edje/edje_private.h2
-rw-r--r--src/lib/edje/edje_util.c40
3 files changed, 38 insertions, 6 deletions
diff --git a/src/lib/edje/edje_part_text.c b/src/lib/edje/edje_part_text.c
index dc5a944743..4db7ce42bd 100644
--- a/src/lib/edje/edje_part_text.c
+++ b/src/lib/edje/edje_part_text.c
@@ -20,7 +20,7 @@ _efl_canvas_layout_part_text_efl_text_text_get(Eo *obj,
void *_pd EINA_UNUSED)
{
PROXY_DATA_GET(obj, pd);
- RETURN_VAL(_edje_efl_text_get(obj, pd->ed, pd->part));
+ RETURN_VAL(_edje_efl_text_get(obj, pd->ed, pd->part, EINA_FALSE));
}
EOLIAN static Efl_Text_Cursor_Cursor *
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index 19421c03ed..c2dc65f0e7 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -3161,7 +3161,7 @@ Evas_Object *_edje_object_part_external_content_get(Edje *ed, const char *part,
/* part text */
Eo *_edje_text_internal_proxy_get(Edje_Object *obj, Edje *ed, Edje_Real_Part *rp);
Eina_Bool _edje_efl_text_set(Eo *obj, Edje *ed, const char *part, const char *text);
-const char *_edje_efl_text_get(Eo *obj, Edje *ed, const char *part);
+const char *_edje_efl_text_get(Eo *obj, Edje *ed, const char *part, Eina_Bool legacy);
Evas_Textblock_Cursor *_edje_text_cursor_get(Edje_Real_Part *rp, Edje_Cursor cur);
void _edje_text_cursor_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor *cur);
void _edje_text_cursor_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor *cur);
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index 36f7ce3eda..7de1a9f45e 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -1923,7 +1923,8 @@ _edje_efl_text_set(Eo *obj, Edje *ed, const char *part, const char *text)
}
const char *
-_edje_efl_text_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part)
+_edje_efl_text_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part,
+ Eina_Bool legacy)
{
Edje_Real_Part *rp;
@@ -1938,7 +1939,17 @@ _edje_efl_text_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part)
(!rp->typedata.text)) return NULL;
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
{
- return _edje_entry_text_get(rp);
+ const char *entry;
+ if (legacy)
+ {
+ entry = _edje_entry_text_get(rp);
+ }
+ else
+ {
+ entry = efl_text_markup_get(rp->object);
+ }
+
+ return entry;
}
else
{
@@ -1958,7 +1969,17 @@ _edje_efl_text_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part)
}
if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
{
- return evas_object_textblock_text_markup_get(rp->object);
+ const char *entry;
+ if (legacy)
+ {
+ entry = evas_object_textblock_text_markup_get(rp->object);
+ }
+ else
+ {
+ entry = efl_text_markup_get(rp->object);
+ }
+
+ return entry;
}
}
@@ -6100,7 +6121,18 @@ edje_object_part_text_set(const Edje_Object *obj, const char *part, const char *
EAPI const char *
edje_object_part_text_get(const Edje_Object *obj, const char *part)
{
- return efl_text_get(efl_part(obj, part));
+ Edje_Real_Part *rp;
+ Edje *ed;
+
+ if (!_edje_part_fetch(obj, part, &ed, &rp)) return NULL;
+
+ if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&
+ (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
+ {
+ ERR("Invalid call on a non-text or non-textblock part: '%s' in group '%s'", part, ed->group);
+ return NULL;
+ }
+ return _edje_efl_text_get((Eo *)obj, ed, part, EINA_TRUE);
}
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/