summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_parser.c8
-rw-r--r--apps/gui/skin_engine/skin_tokens.c1
2 files changed, 9 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 237e4033e2..01fedba99b 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -1995,6 +1995,8 @@ static int convert_viewport(struct wps_data *data, struct skin_element* element)
1995 skin_vp->vp.x = param->data.number; 1995 skin_vp->vp.x = param->data.number;
1996 if (param->data.number < 0) 1996 if (param->data.number < 0)
1997 skin_vp->vp.x += display->lcdwidth; 1997 skin_vp->vp.x += display->lcdwidth;
1998 else if (param->type == PERCENT)
1999 skin_vp->vp.x = param->data.number * display->lcdwidth / 1000;
1998 } 2000 }
1999 param++; 2001 param++;
2000 /* y */ 2002 /* y */
@@ -2003,6 +2005,8 @@ static int convert_viewport(struct wps_data *data, struct skin_element* element)
2003 skin_vp->vp.y = param->data.number; 2005 skin_vp->vp.y = param->data.number;
2004 if (param->data.number < 0) 2006 if (param->data.number < 0)
2005 skin_vp->vp.y += display->lcdheight; 2007 skin_vp->vp.y += display->lcdheight;
2008 else if (param->type == PERCENT)
2009 skin_vp->vp.y = param->data.number * display->lcdheight / 1000;
2006 } 2010 }
2007 param++; 2011 param++;
2008 /* width */ 2012 /* width */
@@ -2011,6 +2015,8 @@ static int convert_viewport(struct wps_data *data, struct skin_element* element)
2011 skin_vp->vp.width = param->data.number; 2015 skin_vp->vp.width = param->data.number;
2012 if (param->data.number < 0) 2016 if (param->data.number < 0)
2013 skin_vp->vp.width = (skin_vp->vp.width + display->lcdwidth) - skin_vp->vp.x; 2017 skin_vp->vp.width = (skin_vp->vp.width + display->lcdwidth) - skin_vp->vp.x;
2018 else if (param->type == PERCENT)
2019 skin_vp->vp.width = param->data.number * display->lcdwidth / 1000;
2014 } 2020 }
2015 else 2021 else
2016 { 2022 {
@@ -2023,6 +2029,8 @@ static int convert_viewport(struct wps_data *data, struct skin_element* element)
2023 skin_vp->vp.height = param->data.number; 2029 skin_vp->vp.height = param->data.number;
2024 if (param->data.number < 0) 2030 if (param->data.number < 0)
2025 skin_vp->vp.height = (skin_vp->vp.height + display->lcdheight) - skin_vp->vp.y; 2031 skin_vp->vp.height = (skin_vp->vp.height + display->lcdheight) - skin_vp->vp.y;
2032 else if (param->type == PERCENT)
2033 skin_vp->vp.height = param->data.number * display->lcdheight / 1000;
2026 } 2034 }
2027 else 2035 else
2028 { 2036 {
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index b550a90073..e58393e19c 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -761,6 +761,7 @@ static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps,
761 if (!number_set && out_text && *out_text >= '0' && *out_text <= '9') 761 if (!number_set && out_text && *out_text >= '0' && *out_text <= '9')
762 a = atoi(out_text); 762 a = atoi(out_text);
763 /* fall through */ 763 /* fall through */
764 case PERCENT:
764 case DECIMAL: 765 case DECIMAL:
765 b = lif->operand.data.number; 766 b = lif->operand.data.number;
766 break; 767 break;