evas textblock: import ascent/descent calculation code from upstream 11/161611/1 accepted/tizen/unified/20171204.072208 submit/tizen/20171130.115009
authorYoungbok Shin <youngb.shin@samsung.com>
Fri, 24 Nov 2017 10:08:22 +0000 (19:08 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Fri, 24 Nov 2017 10:08:22 +0000 (19:08 +0900)
Change-Id: I6a65e3713fa824c0d4bce33e8bce7a1da9172d7e

src/lib/evas/canvas/evas_object_textblock.c

index fe0f9f1..a00a9fe 100644 (file)
@@ -2738,8 +2738,8 @@ _layout_format_ascent_descent_adjust(const Evas_Object *eo_obj,
           }
         descent += fmt->linegap * obj->cur->scale;
         descent += ((ascent + descent) * fmt->linerelgap);
-        if (*maxascent < ascent) *maxascent = ascent;
-        if (*maxdescent < descent) *maxdescent = descent;
+        *maxascent = ascent;
+        *maxdescent = descent;
         if (fmt->linefill > 0.0)
           {
              int dh;
@@ -2759,6 +2759,7 @@ _layout_item_max_ascent_descent_calc(const Evas_Object *eo_obj,
       Evas_Coord *maxascent, Evas_Coord *maxdescent,
       Evas_Object_Textblock_Item *it, Textblock_Position position)
 {
+   Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
    void *fi = NULL;
    *maxascent = *maxdescent = 0;
 
@@ -2775,20 +2776,13 @@ _layout_item_max_ascent_descent_calc(const Evas_Object *eo_obj,
      {
         Evas_Coord asc = 0;
 
+        *maxascent = ENFN->font_max_ascent_get(ENDT, it->format->font.font);
+
         if (fi)
-          {
-             asc = evas_common_font_instance_max_ascent_get(fi);
-          }
-        else
-          {
-             Evas_Object_Protected_Data *obj =
-                eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
-             asc = ENFN->font_max_ascent_get(ENDT,
-                   it->format->font.font);
-          }
+          asc = evas_common_font_instance_max_ascent_get(fi);
 
         if (asc > *maxascent)
-           *maxascent = asc;
+          *maxascent = asc;
      }
 
    if ((position == TEXTBLOCK_POSITION_END) ||
@@ -2797,20 +2791,13 @@ _layout_item_max_ascent_descent_calc(const Evas_Object *eo_obj,
         /* Calculate max descent. */
         Evas_Coord desc = 0;
 
+        *maxdescent = ENFN->font_max_descent_get(ENDT, it->format->font.font);
+
         if (fi)
-          {
-             desc = evas_common_font_instance_max_descent_get(fi);
-          }
-        else
-          {
-             Evas_Object_Protected_Data *obj =
-                eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
-             desc = ENFN->font_max_descent_get(ENDT,
-                   it->format->font.font);
-          }
+          desc = evas_common_font_instance_max_descent_get(fi);
 
         if (desc > *maxdescent)
-           *maxdescent = desc;
+          *maxdescent = desc;
      }
 }
 
@@ -2847,21 +2834,23 @@ _layout_item_ascent_descent_adjust(const Evas_Object *eo_obj,
           }
      }
 
-   if (fi)
+   if (fmt)
      {
-        asc = evas_common_font_instance_ascent_get(fi);
-        desc = evas_common_font_instance_descent_get(fi);
+        Evas_Object_Protected_Data *obj =
+           eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
+        asc = ENFN->font_ascent_get(ENDT, fmt->font.font);
+        desc = ENFN->font_descent_get(ENDT, fmt->font.font);
      }
-   else
+
+   if (fi)
      {
-        if (fmt)
-          {
-             Evas_Object_Protected_Data *obj =
-               eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
-             asc = ENFN->font_ascent_get(ENDT, fmt->font.font);
-             desc = ENFN->font_descent_get(ENDT, fmt->font.font);
-          }
+        int fi_asc = evas_common_font_instance_ascent_get(fi);
+        int fi_desc = evas_common_font_instance_descent_get(fi);
+
+        if (fi_asc > asc) asc = fi_asc;
+        if (fi_desc > desc) desc = fi_desc;
      }
+
    if (fmt) _layout_format_ascent_descent_adjust(eo_obj, &asc, &desc, fmt);
 
    if (asc > *ascent) *ascent = asc;