From 628aded1e13404811060341f17fee0bef724baf7 Mon Sep 17 00:00:00 2001
From: Daniel Carl <danielcarl@gmx.de>
Date: Fri, 1 Aug 2014 01:50:00 +0200
Subject: [PATCH] Don't switch from pass through mode to input mode (#95).

Don't switch from pass through by click into input field nor by a reload of the
page with a focused input field.
---
 src/dom.c  | 3 ++-
 src/main.c | 6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/dom.c b/src/dom.c
index 9668a26..49c3d91 100644
--- a/src/dom.c
+++ b/src/dom.c
@@ -198,7 +198,8 @@ static gboolean element_is_visible(WebKitDOMDOMWindow* win, WebKitDOMElement* el
 
 static gboolean auto_insert(Element *element)
 {
-    if (dom_is_editable(element)) {
+    /* don't change mode if we are in pass through mode */
+    if (vb.mode->id != 'p' && dom_is_editable(element)) {
         mode_enter('i');
 
         return true;
diff --git a/src/main.c b/src/main.c
index 78a20c6..481244c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -529,7 +529,7 @@ static void webview_load_status_cb(WebKitWebView *view, GParamSpec *pspec)
                 js_eval_file(ctx, vb.files[FILES_SCRIPT]);
             }
 
-            /* if we load a page from a submitted form, leafe the insert mode */
+            /* if we load a page from a submitted form, leave the insert mode */
             if (vb.mode->id == 'i') {
                 mode_enter('n');
             }
@@ -1078,7 +1078,9 @@ static gboolean button_relase_cb(WebKitWebView *webview, GdkEventButton *event)
 
             propagate = true;
         }
-    } else if (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE) {
+    } else if (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE && vb.mode->id != 'p') {
+        /* don't switch back to input mode if we are currently in pass through
+         * mode when the user clicks into a form field */
         mode_enter('i');
         propagate = true;
     }
-- 
2.20.1