Adds support for contenteditable attribute as input mode trigger
authorJiri Marsicek <jiri.marsicek@gmail.com>
Sat, 22 Aug 2015 19:58:25 +0000 (21:58 +0200)
committerDaniel Carl <danielcarl@gmx.de>
Sun, 23 Aug 2015 07:15:01 +0000 (09:15 +0200)
fanglingsu/vimb#237

src/dom.c

index 34bb8d2..32b6bea 100644 (file)
--- a/src/dom.c
+++ b/src/dom.c
@@ -171,14 +171,15 @@ gboolean dom_focus_input(Document *doc)
 gboolean dom_is_editable(Element *element)
 {
     gboolean result = false;
-    char *tagname, *type;
+    char *tagname, *type, *editable;
 
     if (!element) {
         return result;
     }
 
-    tagname = webkit_dom_element_get_tag_name(element);
-    type    = webkit_dom_element_get_attribute(element, "type");
+    tagname  = webkit_dom_element_get_tag_name(element);
+    type     = webkit_dom_element_get_attribute(element, "type");
+    editable = webkit_dom_element_get_attribute(element, "contenteditable"); 
     /* element is editable if it's a text area or input with no type, text or
      * pasword */
     if (!g_ascii_strcasecmp(tagname, "textarea")) {
@@ -201,11 +202,14 @@ gboolean dom_is_editable(Element *element)
             || !g_ascii_strcasecmp(type, "week"))
     ) {
         result = true;
+    } else if (!g_ascii_strcasecmp(editable, "true")) {
+        result = true;
     } else {
         result = false;
     }
     g_free(tagname);
     g_free(type);
+    g_free(editable);
 
     return result;
 }