herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bfa7d2a3b2d6dbd20d6232e950d538611fdb7a9e

commit bfa7d2a3b2d6dbd20d6232e950d538611fdb7a9e
Author: Daniel Hirt <[email protected]>
Date:   Tue Sep 26 10:38:46 2017 +0300

    Evas textblock: fix ascent/descent calc
    
    This is a follow-up to 4d4401f3a60024a0762393c3984065b73927eb86.
    The format line adjustment (e.g. linegap) should calculate the current
    item's ascent/descent, and then update c->ascent/c->descent.
    Otherwise we accumulate calculations like linegap values
    
    ref D5217
---
 src/lib/evas/canvas/evas_object_textblock.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index d371ab00a9..60d2ff0545 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -3032,25 +3032,22 @@ 
_layout_item_ascent_descent_adjust(Evas_Object_Protected_Data *obj,
           }
      }
 
-   if (fmt)
-     {
-        asc = ENFN->font_ascent_get(ENC, fmt->font.font);
-        desc = ENFN->font_descent_get(ENC, fmt->font.font);
-
-        if (asc > *ascent) *ascent = asc;
-        if (desc > *descent) *descent = desc;
-     }
-
    if (fi)
      {
         asc = evas_common_font_instance_ascent_get(fi);
         desc = evas_common_font_instance_descent_get(fi);
+     }
 
-        if (asc > *ascent) *ascent = asc;
-        if (desc > *descent) *descent = desc;
+   else if (fmt)
+     {
+        asc = ENFN->font_ascent_get(ENC, fmt->font.font);
+        desc = ENFN->font_descent_get(ENC, fmt->font.font);
      }
 
-   if (fmt) _layout_format_ascent_descent_adjust(obj, ascent, descent, fmt);
+   if (fmt) _layout_format_ascent_descent_adjust(obj, &asc, &desc, fmt);
+
+   if (asc > *ascent) *ascent = asc;
+   if (desc > *descent) *descent = desc;
 }
 
 /**

-- 


Reply via email to