summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine/skin_parser.c')
-rw-r--r--apps/gui/skin_engine/skin_parser.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 7f3f4d62e1..7bcd25d258 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -1148,7 +1148,6 @@ static int parse_progressbar_tag(struct skin_element* element,
1148 { 1148 {
1149 struct touchregion *region = skin_buffer_alloc(sizeof(*region)); 1149 struct touchregion *region = skin_buffer_alloc(sizeof(*region));
1150 struct skin_token_list *item; 1150 struct skin_token_list *item;
1151 int wpad, hpad;
1152 1151
1153 if (!region) 1152 if (!region)
1154 return 0; 1153 return 0;
@@ -1163,24 +1162,24 @@ static int parse_progressbar_tag(struct skin_element* element,
1163 /* try to add some extra space on either end to make pressing the 1162 /* try to add some extra space on either end to make pressing the
1164 * full bar easier. ~5% on either side 1163 * full bar easier. ~5% on either side
1165 */ 1164 */
1166 wpad = pb->width * 5 / 100; 1165 region->wpad = pb->width * 5 / 100;
1167 if (wpad > 10) 1166 if (region->wpad > 10)
1168 wpad = 10; 1167 region->wpad = 10;
1169 hpad = pb->height * 5 / 100; 1168 region->hpad = pb->height * 5 / 100;
1170 if (hpad > 10) 1169 if (region->hpad > 10)
1171 hpad = 10; 1170 region->hpad = 10;
1172 1171
1173 region->x = pb->x - wpad; 1172 region->x = pb->x;
1174 if (region->x < 0) 1173 if (region->x < 0)
1175 region->x = 0; 1174 region->x = 0;
1176 region->width = pb->width + 2 * wpad; 1175 region->width = pb->width;
1177 if (region->x + region->width > curr_vp->vp.x + curr_vp->vp.width) 1176 if (region->x + region->width > curr_vp->vp.x + curr_vp->vp.width)
1178 region->width = curr_vp->vp.x + curr_vp->vp.width - region->x; 1177 region->width = curr_vp->vp.x + curr_vp->vp.width - region->x;
1179 1178
1180 region->y = pb->y - hpad; 1179 region->y = pb->y;
1181 if (region->y < 0) 1180 if (region->y < 0)
1182 region->y = 0; 1181 region->y = 0;
1183 region->height = pb->height + 2 * hpad; 1182 region->height = pb->height;
1184 if (region->y + region->height > curr_vp->vp.y + curr_vp->vp.height) 1183 if (region->y + region->height > curr_vp->vp.y + curr_vp->vp.height)
1185 region->height = curr_vp->vp.y + curr_vp->vp.height - region->y; 1184 region->height = curr_vp->vp.y + curr_vp->vp.height - region->y;
1186 1185
@@ -1541,6 +1540,10 @@ static int parse_touchregion(struct skin_element *element,
1541 /* should probably do some bounds checking here with the viewport... but later */ 1540 /* should probably do some bounds checking here with the viewport... but later */
1542 region->action = ACTION_NONE; 1541 region->action = ACTION_NONE;
1543 1542
1543 /* padding is only for bars, user defined regions have no need of it */
1544 region->wpad = 0;
1545 region->hpad = 0;
1546
1544 if (get_param(element, 0)->type == STRING) 1547 if (get_param(element, 0)->type == STRING)
1545 { 1548 {
1546 region->label = PTRTOSKINOFFSET(skin_buffer, get_param_text(element, 0)); 1549 region->label = PTRTOSKINOFFSET(skin_buffer, get_param_text(element, 0));