From d0f7361df0f2044fc8486f735b953b9d939b2781 Mon Sep 17 00:00:00 2001 From: miguel Date: Tue, 20 Mar 2018 20:34:05 +0100 Subject: full abuse of KioskMode to implement insert/normal mode --- surf.c | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) (limited to 'surf.c') diff --git a/surf.c b/surf.c index 860cfaa..5db9315 100644 --- a/surf.c +++ b/surf.c @@ -627,8 +627,20 @@ updatetitle(Client *c) void gettogglestats(Client *c) { - togglestats[0] = cookiepolicy_set(cookiepolicy_get()); - togglestats[1] = curconfig[CaretBrowsing].val.i ? 'C' : 'c'; + int i=0; + togglestats[i++] = cookiepolicy_set(cookiepolicy_get()); + if(curconfig[CaretBrowsing].val.i)togglestats[i++]='C'; + if(curconfig[Geolocation].val.i)togglestats[i++]='G'; + if(!curconfig[DiskCache].val.i)togglestats[i++]='d'; + if(!curconfig[LoadImages].val.i)togglestats[i++]='i'; + if(curconfig[JavaScript].val.i)togglestats[i++]='S'; + if(curconfig[Plugins].val.i)togglestats[i++]='V'; + if(curconfig[FrameFlattening].val.i)togglestats[i++]='F'; + if(curconfig[Certificate].val.i)togglestats[i++]='X'; + if(!curconfig[StrictTLS].val.i)togglestats[i++]='t'; + if(curconfig[KioskMode].val.i)togglestats[i++]='I'; + + /* togglestats[2] = curconfig[Geolocation].val.i ? 'G' : 'g'; togglestats[3] = curconfig[DiskCache].val.i ? 'D' : 'd'; togglestats[4] = curconfig[LoadImages].val.i ? 'I' : 'i'; @@ -639,7 +651,9 @@ gettogglestats(Client *c) togglestats[9] = curconfig[Certificate].val.i ? 'X' : 'x'; togglestats[10] = curconfig[StrictTLS].val.i ? 'T' : 't'; togglestats[11] = curconfig[KioskMode].val.i ? 'K' : 'k'; - togglestats[12] = '\0'; + */ + + togglestats[i++] = '\0'; } void @@ -1278,6 +1292,9 @@ winevent(GtkWidget *w, GdkEvent *e, Client *c) updatetitle(c); break; case GDK_KEY_PRESS: + + // we abuse the KioskMode to make surf modal (insert/normal) + // 'i' and 'ESC' are configured in config.h as well if (!curconfig[KioskMode].val.i ^ e->key.keyval==GDK_KEY_Escape) { for (i = 0; i < LENGTH(keys); ++i) { if (gdk_keyval_to_lower(e->key.keyval) == @@ -1289,7 +1306,23 @@ winevent(GtkWidget *w, GdkEvent *e, Client *c) return TRUE; } } - } + + switch(e->key.keyval) + { + case GDK_KEY_Down: + case GDK_KEY_Page_Down: + case GDK_KEY_Left: + case GDK_KEY_Right: + case GDK_KEY_Page_Up: + case GDK_KEY_Up: + case GDK_KEY_Home: + case GDK_KEY_End: + break; + default: + return TRUE; + } + } + case GDK_LEAVE_NOTIFY: c->overtitle = NULL; updatetitle(c); -- cgit v1.2.3