efl_ui_textpath: fix a center align but that doesn't happen at text_set(). 56/208456/1
authorHermet Park <hermetpark@gmail.com>
Mon, 24 Jun 2019 12:29:14 +0000 (21:29 +0900)
committerHermet Park <hermetpark@gmail.com>
Mon, 24 Jun 2019 12:33:39 +0000 (21:33 +0900)
When textpath obj has a new text data, it must update center align position
based on the new text length. Previously, it missed that logic.

@fix

Change-Id: Ibba951791904a797d0ddd1553799fc7cc0d18bb2

src/lib/elementary/efl_ui_textpath.c

index fd53391..68b209b 100644 (file)
@@ -563,20 +563,6 @@ _efl_ui_textpath_efl_gfx_path_commit(Eo *obj, Efl_Ui_Textpath_Data *pd)
    _sizing_eval(pd);
 }
 
-static Eina_Bool
-_textpath_text_set_internal(Eo *obj, Efl_Ui_Textpath_Data *pd, const char *part, const char *text)
-{
-   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
-   Eina_Bool ret = EINA_TRUE;
-
-   if (!text) text = "";
-   ret = edje_object_part_text_set(pd->text_obj, part, text);
-   _ellipsis_set(pd, obj);
-   _sizing_eval(pd);
-
-   return ret;
-}
-
 static void
 _path_start_angle_adjust(Eo *obj, Efl_Ui_Textpath_Data *pd)
 {
@@ -650,6 +636,21 @@ _path_start_angle_adjust(Eo *obj, Efl_Ui_Textpath_Data *pd)
    _path_data_get(obj, pd);
 }
 
+static Eina_Bool
+_textpath_text_set_internal(Eo *obj, Efl_Ui_Textpath_Data *pd, const char *part, const char *text)
+{
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
+   Eina_Bool ret = EINA_TRUE;
+
+   if (!text) text = "";
+   ret = edje_object_part_text_set(pd->text_obj, part, text);
+   _ellipsis_set(pd, obj);
+   _path_start_angle_adjust(obj, pd);
+   _sizing_eval(pd);
+
+   return ret;
+}
+
 EOLIAN static void
 _efl_ui_textpath_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_Textpath_Data *pd)
 {