fixes (shift)tab cycling through editable elements
authorRobert Timm <mail@rtti.de>
Sat, 25 Feb 2017 23:29:12 +0000 (00:29 +0100)
committerRobert Timm <mail@rtti.de>
Sun, 26 Feb 2017 22:42:36 +0000 (23:42 +0100)
src/input.c
src/normal.c

index afa9360..6236c9d 100644 (file)
@@ -38,6 +38,7 @@ void input_enter(Client *c)
      * disturbing the user */
     gtk_widget_grab_focus(GTK_WIDGET(c->webview));
     vb_modelabel_update(c, "-- INPUT --");
+    webkit_web_view_run_javascript(c->webview, "var vimb_input_mode_element = document.activeElement;", NULL, NULL, NULL);
 }
 
 /**
@@ -45,7 +46,7 @@ void input_enter(Client *c)
  */
 void input_leave(Client *c)
 {
-    webkit_web_view_run_javascript(c->webview, "document.activeElement.blur();", NULL, NULL, NULL);
+    webkit_web_view_run_javascript(c->webview, "vimb_input_mode_element.blur();", NULL, NULL, NULL);
     vb_modelabel_update(c, "");
 }
 
index 7410fb9..e92de75 100644 (file)
@@ -215,7 +215,6 @@ extern struct Vimb vb;
  */
 void normal_enter(Client *c)
 {
-    webkit_web_view_run_javascript(c->webview, "document.activeElement.blur();", NULL, NULL, NULL);
     /* Make sure that when the browser area becomes visible, it will get mouse
      * and keyboard events */
     gtk_widget_grab_focus(GTK_WIDGET(c->webview));
@@ -322,6 +321,7 @@ void pass_enter(Client *c)
  */
 void pass_leave(Client *c)
 {
+    webkit_web_view_run_javascript(c->webview, "document.activeElement.blur();", NULL, NULL, NULL);
     vb_modelabel_update(c, "");
 }