tAdding kiosk mode. - 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 badb84387e659ba1692c08f728ad6e7846d37818 (DIR) parent fe3bd631d4e163e15ab685c22ad70c67f8b94f83 (HTM) Author: Christoph Lohmann <20h@r-36.net> Date: Mon, 11 Mar 2013 21:26:22 +0100 Adding kiosk mode. Thanks to Christian Hesse <mail@eworm.de>! Diffstat: M config.def.h | 1 + M surf.1 | 5 ++++- M surf.c | 19 ++++++++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) --- (DIR) diff --git a/config.def.h b/config.def.h t@@ -8,6 +8,7 @@ static char *cookiefile = "~/.surf/cookies.txt"; static time_t sessiontime = 3600; static char *cafile = "/etc/ssl/certs/ca-certificates.crt"; static char *strictssl = FALSE; /* Refuse untrusted SSL connections */ +static Bool kioskmode = FALSE; /* Ignore shortcuts */ /* Webkit default features */ static Bool enablescrollbars = TRUE; (DIR) diff --git a/surf.1 b/surf.1 t@@ -3,7 +3,7 @@ surf \- simple webkit-based browser .SH SYNOPSIS .B surf -.RB [-bipnsvx] +.RB [-biknpsvx] .RB [-c\ cookiefile] .RB [-e\ xid] .RB [-r\ scriptfile] t@@ -32,6 +32,9 @@ Reparents to window specified by .B \-i Disable Images .TP +.B \-k +Enable kiosk mode (disable key strokes and right click) +.TP .B \-n Disable the Web Inspector (Developer Tools). .TP (DIR) diff --git a/surf.c b/surf.c t@@ -644,9 +644,11 @@ newclient(void) { g_signal_connect(G_OBJECT(c->win), "destroy", G_CALLBACK(destroywin), c); - g_signal_connect(G_OBJECT(c->win), - "key-press-event", - G_CALLBACK(keypress), c); + if(!kioskmode) { + g_signal_connect(G_OBJECT(c->win), + "key-press-event", + G_CALLBACK(keypress), c); + } /* Pane */ c->pane = gtk_vpaned_new(); t@@ -748,6 +750,8 @@ newclient(void) { enablespatialbrowsing, NULL); g_object_set(G_OBJECT(settings), "enable-developer-extras", enableinspector, NULL); + g_object_set(G_OBJECT(settings), "enable-default-context-menu", + kioskmode ^ 1, NULL); if(enableinspector) { c->inspector = WEBKIT_WEB_INSPECTOR( t@@ -790,7 +794,7 @@ newclient(void) { static void newwindow(Client *c, const Arg *arg, gboolean noembed) { guint i = 0; - const char *cmd[11], *uri; + const char *cmd[12], *uri; const Arg a = { .v = (void *)cmd }; char tmp[64]; t@@ -804,6 +808,8 @@ newwindow(Client *c, const Arg *arg, gboolean noembed) { } if(!loadimages) cmd[i++] = "-i"; + if(!kioskmode) + cmd[i++] = "-k"; if(!enableplugins) cmd[i++] = "-p"; if(!enablescripts) t@@ -1180,7 +1186,7 @@ updatewinid(Client *c) { static void usage(void) { - die("usage: %s [-binpsvx] [-c cookiefile] [-e xid] [-r scriptfile]" + die("usage: %s [-biknpsvx] [-c cookiefile] [-e xid] [-r scriptfile]" " [-t stylefile] [-u useragent] [uri]\n", basename(argv0)); } t@@ -1226,6 +1232,9 @@ main(int argc, char *argv[]) { case 'i': loadimages = 0; break; + case 'k': + kioskmode = 1; + break; case 'n': enableinspector = 0; break;