From c0c34b33cb660b923d70a30568a6f889abeedd7d Mon Sep 17 00:00:00 2001 From: Youngbok Shin Date: Tue, 4 Apr 2017 18:36:41 +0900 Subject: [PATCH] evas textblock: fix top/bottom valign tag reversed issue Summary: valign tag is for handling vertical align according to line's height and text's height. But, it worked in a line which has only one font and one font size, too. And the result was abnormal depending its font. The line's height is [ascent + descent]. But, Textblock uses max ascent and items's height(could be used max ascent + max descent according to its position) when Textblock calculates item's yoff. So, If Textblock calculate yoff based on line's height, it should use only ascent and descent instead of max ascent and max descent. @fix Test Plan: Will attached in comment section. Reviewers: raster, herdsman, jpeg, woohyun Reviewed By: raster Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D4760 Change-Id: I05a552f230dc821d8d749fc05139967c7c82e81a --- src/lib/evas/canvas/evas_object_textblock.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index d596718..81840cc2 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -13025,10 +13025,14 @@ evas_object_textblock_render(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Textblock_Text_Item *titr = \ (Evas_Object_Textblock_Text_Item *)itr; \ int ascent = 0; \ + int descent = 0; \ if (titr->text_props.font_instance) \ - ascent = evas_common_font_instance_max_ascent_get(titr->text_props.font_instance); \ + { \ + ascent = evas_common_font_instance_ascent_get(titr->text_props.font_instance); \ + descent = evas_common_font_instance_descent_get(titr->text_props.font_instance); \ + } \ yoff = ascent + \ - (itr->format->valign * (ln->h - itr->h)); \ + (itr->format->valign * (ln->h - (ascent + descent))); \ } \ else yoff = itr->format->valign * (ln->h - itr->h); \ } \ -- 2.7.4