tRemoving the insert mode. It will only confuse users. The stop() function is kept like the eval() function because it could be used in config.h - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6d9d3ca4e133745925945a00d5e0c881b58c3a62
 (DIR) parent c12b6499fe68b4bc3114ed241c937dd38f94de87
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri, 16 Nov 2012 10:13:23 +0100
       
       Removing the insert mode. It will only confuse users. The stop() function is
       kept like the eval() function because it could be used in config.h
       Diffstat:
         M config.def.h                        |       2 --
         M surf.1                              |       7 -------
         M surf.c                              |      44 ++++---------------------------
       
       3 files changed, 5 insertions(+), 48 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -43,10 +43,8 @@ static Key keys[] = {
            { MODKEY,               GDK_k,           scroll_v,   { .i = -1 } },
            { MODKEY,               GDK_b,           scroll_v,   { .i = -10000 } },
            { MODKEY,               GDK_space,       scroll_v,   { .i = +10000 } },
       -    { 0,                    GDK_i,      insert,     { 0 } },
            { MODKEY,               GDK_i,           scroll_h,   { .i = +1 } },
            { MODKEY,               GDK_u,           scroll_h,   { .i = -1 } },
       -    { 0,                    GDK_Escape, stop,       { 0 } },
            { MODKEY,               GDK_o,      source,     { 0 } },
            { MODKEY,               GDK_g,      spawn,      SETPROP("_SURF_URI", "_SURF_GO") },
            { MODKEY,               GDK_f,      spawn,      SETPROP("_SURF_FIND", "_SURF_FIND") },
 (DIR) diff --git a/surf.1 b/surf.1
       t@@ -88,13 +88,6 @@ Zooms page out
        .B Ctrl\-Shift\-i
        Resets Zoom
        .TP
       -.B i
       -Enter insert mode. There all keybindings have effect with and without
       -pressing the modkey.
       -.TP
       -.B ESC
       -Leave the insert mode.
       -.TP
        .B Ctrl\-h
        Navigate back one step in history.
        .TP
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -79,8 +79,7 @@ static GdkNativeWindow embed = 0;
        static gboolean showxid = FALSE;
        static char winid[64];
        static gboolean loadimage = 1, plugin = 1, script = 1, using_proxy = 0;
       -static char togglestat[6];
       -static gboolean insertmode = FALSE;
       +static char togglestat[5];
        
        static char *buildpath(const char *path);
        static gboolean buttonrelease(WebKitWebView *web, GdkEventButton *e, GList *gl);
       t@@ -103,7 +102,6 @@ static void find(Client *c, const Arg *arg);
        static const char *getatom(Client *c, int a);
        static char *geturi(Client *c);
        static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
       -static void insert(Client *c, const Arg *arg);
        static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
        static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *c);
        static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c);
       t@@ -437,47 +435,18 @@ initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
                return FALSE;
        }
        
       -void
       -insert(Client *c, const Arg *arg) {
       -        insertmode = TRUE;
       -        update(clients);
       -}
       -
        gboolean
        keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
       -        guint i, state;
       +        guint i;
                gboolean processed = FALSE;
        
       -        /* turn off insert mode */
       -        if(insertmode && (ev->keyval == GDK_Escape)) {
       -                insertmode = FALSE;
       -                update(c);
       -                return TRUE;
       -        }
       -
       -        if(insertmode && (((ev->state & MODKEY) != MODKEY) || !MODKEY)) {
       -                return FALSE;
       -        }
       -
       -        if(ev->keyval == GDK_Escape) {
       -                webkit_web_view_set_highlight_text_matches(c->view, FALSE);
       -                return TRUE;
       -        }
       -
                updatewinid(c);
                for(i = 0; i < LENGTH(keys); i++) {
       -                if(!insertmode && (MODKEY & keys[i].mod)) {
       -                        state = ev->state | MODKEY;
       -                } else {
       -                        state = ev->state;
       -                }
       -
                        if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
       +                                && (ev->state & keys[i].mod) == keys[i].mod
                                        && keys[i].func) {
       -                        if(state == keys[i].mod) {
       -                                keys[i].func(c, &(keys[i].arg));
       -                                processed = TRUE;
       -                        }
       +                        keys[i].func(c, &(keys[i].arg));
       +                        processed = TRUE;
                        }
                }
        
       t@@ -953,9 +922,6 @@ gettogglestat(Client *c){
                g_object_get(G_OBJECT(settings), "enable-caret-browsing",
                                &value, NULL);
                togglestat[3] = value?'C':'c';
       -
       -        togglestat[4] = insertmode? '+' : '-';
       -        togglestat[5] = '\0';
        }