summaryrefslogtreecommitdiff
path: root/render/form.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2014-01-05 16:14:17 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2014-01-05 16:14:17 +0000
commit6bf609a1a4b313d49e5a657b2cf421c092aa1414 (patch)
tree68c20f5b2f9dbed3a270f42e22eb8c001290ee79 /render/form.c
parentb1e6c63a2f00a84c1774d7a5165a7518d8bd7b4d (diff)
downloadnetsurf-6bf609a1a4b313d49e5a657b2cf421c092aa1414.tar.gz
netsurf-6bf609a1a4b313d49e5a657b2cf421c092aa1414.tar.bz2
Support image inputs
Diffstat (limited to 'render/form.c')
-rw-r--r--render/form.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/render/form.c b/render/form.c
index 48648b103..b55ec171c 100644
--- a/render/form.c
+++ b/render/form.c
@@ -353,6 +353,7 @@ bool form_successful_controls_dom(struct form *_form,
bool had_submit = false, element_disabled;
char *charset, *rawfile_temp = NULL, *basename;
uint32_t index, element_count;
+ struct image_input_coords *coords;
last_success = &sentinel;
sentinel.next = NULL;
@@ -615,6 +616,19 @@ bool form_successful_controls_dom(struct form *_form,
(dom_node *)form_element)
continue;
+ err = dom_node_get_user_data(
+ form_element,
+ corestring_dom___ns_key_image_coords_node_data,
+ &coords);
+ if (err != DOM_NO_ERR) {
+ LOG(("Could not get image XY data"));
+ goto dom_no_memory;
+ }
+ if (coords == NULL) {
+ LOG(("No XY data on the image input"));
+ goto dom_no_memory;
+ }
+
basename = ENCODE_ITEM(inputname);
success_new = calloc(1, sizeof(*success_new));
@@ -640,10 +654,7 @@ bool form_successful_controls_dom(struct form *_form,
goto dom_no_memory;
}
sprintf(success_new->name, "%s.x", basename);
- /** \todo Store this on the node and
- * retrieve it here
- */
- sprintf(success_new->value, "%d", 0);
+ sprintf(success_new->value, "%d", coords->x);
success_new = calloc(1, sizeof(*success_new));
if (success_new == NULL) {
@@ -668,10 +679,7 @@ bool form_successful_controls_dom(struct form *_form,
goto dom_no_memory;
}
sprintf(success_new->name, "%s.y", basename);
- /** \todo Store this on the node and
- * retrieve it here
- */
- sprintf(success_new->value, "%d", 0);
+ sprintf(success_new->value, "%d", coords->y);
free(basename);
continue;
} else if (dom_string_caseless_isequal(