summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/skin_engine/skin_parser.c10
-rw-r--r--lib/skin_parser/tag_table.c2
2 files changed, 10 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 0be88f4e69..8409f0ed8b 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -1179,7 +1179,10 @@ static int parse_skinvar( struct skin_element *element,
1179 if (!data) 1179 if (!data)
1180 return WPS_ERROR_INVALID_PARAM; 1180 return WPS_ERROR_INVALID_PARAM;
1181 data->var = PTRTOSKINOFFSET(skin_buffer, var); 1181 data->var = PTRTOSKINOFFSET(skin_buffer, var);
1182 data->newval = get_param(element, 2)->data.number; 1182 if (!isdefault(get_param(element, 2)))
1183 data->newval = get_param(element, 2)->data.number;
1184 else if (strcmp(get_param_text(element, 1), "touch"))
1185 return WPS_ERROR_INVALID_PARAM;
1183 data->max = 0; 1186 data->max = 0;
1184 if (!strcmp(get_param_text(element, 1), "set")) 1187 if (!strcmp(get_param_text(element, 1), "set"))
1185 data->direct = true; 1188 data->direct = true;
@@ -1192,6 +1195,11 @@ static int parse_skinvar( struct skin_element *element,
1192 data->direct = false; 1195 data->direct = false;
1193 data->newval *= -1; 1196 data->newval *= -1;
1194 } 1197 }
1198 else if (!strcmp(get_param_text(element, 1), "touch"))
1199 {
1200 data->direct = false;
1201 data->newval = 0;
1202 }
1195 if (element->params_count > 3) 1203 if (element->params_count > 3)
1196 data->max = get_param(element, 3)->data.number; 1204 data->max = get_param(element, 3)->data.number;
1197 token->value.data = PTRTOSKINOFFSET(skin_buffer, data); 1205 token->value.data = PTRTOSKINOFFSET(skin_buffer, data);
diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c
index 1ddef71a24..d10b319dcf 100644
--- a/lib/skin_parser/tag_table.c
+++ b/lib/skin_parser/tag_table.c
@@ -236,7 +236,7 @@ static const struct tag_info legal_tags[] =
236 { SKIN_TOKEN_REC_HOURS, "Rh" , "", SKIN_REFRESH_DYNAMIC }, 236 { SKIN_TOKEN_REC_HOURS, "Rh" , "", SKIN_REFRESH_DYNAMIC },
237 237
238 /* Skin variables */ 238 /* Skin variables */
239 { SKIN_TOKEN_VAR_SET, "vs", "SSI|I", SKIN_REFRESH_DYNAMIC }, 239 { SKIN_TOKEN_VAR_SET, "vs", "SSi|I", SKIN_REFRESH_DYNAMIC },
240 { SKIN_TOKEN_VAR_GETVAL, "vg", "S", SKIN_REFRESH_DYNAMIC }, 240 { SKIN_TOKEN_VAR_GETVAL, "vg", "S", SKIN_REFRESH_DYNAMIC },
241 { SKIN_TOKEN_VAR_TIMEOUT, "vl", "S|D", SKIN_REFRESH_DYNAMIC }, 241 { SKIN_TOKEN_VAR_TIMEOUT, "vl", "S|D", SKIN_REFRESH_DYNAMIC },
242 242