diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2014-01-05 16:14:17 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2014-01-05 16:14:17 +0000 |
commit | 6bf609a1a4b313d49e5a657b2cf421c092aa1414 (patch) | |
tree | 68c20f5b2f9dbed3a270f42e22eb8c001290ee79 /render/form.c | |
parent | b1e6c63a2f00a84c1774d7a5165a7518d8bd7b4d (diff) | |
download | netsurf-6bf609a1a4b313d49e5a657b2cf421c092aa1414.tar.gz netsurf-6bf609a1a4b313d49e5a657b2cf421c092aa1414.tar.bz2 |
Support image inputs
Diffstat (limited to 'render/form.c')
-rw-r--r-- | render/form.c | 24 |
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( |