From 96e6d307b851fda1936cc3d7fc87ec5d7dc84aa8 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 10 Apr 2019 17:39:36 +0900 Subject: [PATCH] svg_parse: The percentage gradient value divide by view's size Summary: The default unit of gradient value is percentage. This can be a value from 0 to 1. If svg use the '%' symbol, we must divide by 100. And it must be calculated the same as any other case. Test Plan: N/A Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8590 --- src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c index 243eb548de..c01ecd733f 100644 --- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c +++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c @@ -144,13 +144,6 @@ _gradient_to_double(Evas_SVG_Parser *svg_parse, const char *str, SVG_Parser_Leng double parsed_value = strtod(str, &end); double max = 1; - /* unique case, if that is percentage, just return it */ - if (strstr(str, "%")) - { - parsed_value = parsed_value / 100.0; - return parsed_value; - } - /** * That is according to Units in here * @@ -164,7 +157,9 @@ _gradient_to_double(Evas_SVG_Parser *svg_parse, const char *str, SVG_Parser_Leng max = sqrt(pow(svg_parse->global.height, 2) + pow(svg_parse->global.width, 2)) / sqrt(2.0); - if (strstr(str, "cm")) + if (strstr(str, "%")) + parsed_value = parsed_value / 100.0; + else if (strstr(str, "cm")) parsed_value = parsed_value * 35.43307; else if (strstr(str, "mm")) parsed_value = parsed_value * 3.543307;