From: Youngbok Shin Date: Tue, 4 Apr 2017 09:36:41 +0000 (+0900) Subject: evas textblock: fix top/bottom valign tag reversed issue X-Git-Tag: accepted/tizen/unified/20170426.061819~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0c34b33cb660b923d70a30568a6f889abeedd7d;p=platform%2Fupstream%2Fefl.git 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 --- 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); \ } \