diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-23 17:44:20 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-23 17:44:20 +0000 |
commit | bba74b7a0b414809e29d8b19978db1996a8822ac (patch) | |
tree | c8f95919650359a6b720fe0336c31bdbff5ea7c9 /render/box_textarea.c | |
parent | 3cc90f2f3022dd4b416c704e53b69a629fa6ff18 (diff) | |
download | netsurf-bba74b7a0b414809e29d8b19978db1996a8822ac.tar.gz netsurf-bba74b7a0b414809e29d8b19978db1996a8822ac.tar.bz2 |
Handle readonly attribute for text inputs and textareas.
Diffstat (limited to 'render/box_textarea.c')
-rw-r--r-- | render/box_textarea.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/render/box_textarea.c b/render/box_textarea.c index 3d9838fa1..b529fe65c 100644 --- a/render/box_textarea.c +++ b/render/box_textarea.c @@ -209,11 +209,10 @@ bool box_textarea_create_textarea(html_content *html, textarea_setup ta_setup; textarea_flags ta_flags; plot_font_style_t fstyle; + bool read_only = false; struct form_control *gadget = box->gadget; const char *text; - /** TODO: Read only textarea */ - assert(gadget != NULL); assert(gadget->type == GADGET_TEXTAREA || gadget->type == GADGET_TEXTBOX || @@ -221,6 +220,13 @@ bool box_textarea_create_textarea(html_content *html, if (gadget->type == GADGET_TEXTAREA) { ta_flags = TEXTAREA_MULTILINE; + dom_html_text_area_element *textarea = + (dom_html_text_area_element *) node; + + err = dom_html_text_area_element_get_read_only( + textarea, &read_only); + if (err != DOM_NO_ERR) + return false; /* Get the textarea's initial content */ err = dom_node_get_text_content(node, &dom_text); @@ -230,6 +236,11 @@ bool box_textarea_create_textarea(html_content *html, } else { dom_html_input_element *input = (dom_html_input_element *) node; + err = dom_html_input_element_get_read_only( + input, &read_only); + if (err != DOM_NO_ERR) + return false; + if (gadget->type == GADGET_PASSWORD) ta_flags = TEXTAREA_PASSWORD; else @@ -249,6 +260,9 @@ bool box_textarea_create_textarea(html_content *html, text = ""; } + if (read_only) + ta_flags |= TEXTAREA_READONLY; + gadget->data.text.data.html = html; gadget->data.text.data.gadget = gadget; |