diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2014-01-21 15:01:18 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2014-01-21 15:01:18 +0000 |
commit | 4684e9665d2ddff50f4a8e9a16d73224d2617180 (patch) | |
tree | 132d06846577201cdd7f11298bc0dab2b8a5e4a0 | |
parent | aa380ed47a465e812e235e4c7a3706de905d4d2d (diff) | |
download | netsurf-4684e9665d2ddff50f4a8e9a16d73224d2617180.tar.gz netsurf-4684e9665d2ddff50f4a8e9a16d73224d2617180.tar.bz2 |
Deselect other options when select option is selected, and it's not a multi-select.
-rw-r--r-- | render/form.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/render/form.c b/render/form.c index 49d6f217c..5ce8056de 100644 --- a/render/form.c +++ b/render/form.c @@ -520,7 +520,7 @@ bool form_successful_controls_dom(struct form *_form, goto dom_no_memory; } for(option_index = 0; option_index < options_count; - ++option_index) { + ++option_index) { bool selected; if (option_element != NULL) { dom_node_unref(option_element); @@ -1335,19 +1335,23 @@ static void form__select_process_selection(html_content *html, count++, o = o->next) { if (!control->data.select.multiple) o->selected = false; + dom_html_option_element_set_selected(o->node, false); if (count == item) { if (control->data.select.multiple) { if (o->selected) { o->selected = false; - dom_html_option_element_set_selected(o->node, false); + dom_html_option_element_set_selected( + o->node, false); control->data.select.num_selected--; } else { o->selected = true; - dom_html_option_element_set_selected(o->node, true); + dom_html_option_element_set_selected( + o->node, true); control->data.select.num_selected++; } } else { - dom_html_option_element_set_selected(o->node, true); + dom_html_option_element_set_selected( + o->node, true); o->selected = true; } } |