[hackers] [surf] Adding kiosk mode. || Christoph Lohmann

From: <git_AT_suckless.org>
Date: Mon, 11 Mar 2013 21:29:06 +0100

commit badb84387e659ba1692c08f728ad6e7846d37818
Author: Christoph Lohmann <20h_AT_r-36.net>
Date: Mon Mar 11 21:26:22 2013 +0100

    Adding kiosk mode.
    
    Thanks to Christian Hesse <mail_AT_eworm.de>!

diff --git a/config.def.h b/config.def.h
index d9a2be9..85bfe47 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -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;
diff --git a/surf.1 b/surf.1
index 97c00f0..339ff6b 100644
--- a/surf.1
+++ b/surf.1
_AT_@ -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]
_AT_@ -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
diff --git a/surf.c b/surf.c
index 214b9c7..702eaf6 100644
--- a/surf.c
+++ b/surf.c
_AT_@ -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();
_AT_@ -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(
_AT_@ -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];
 
_AT_@ -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)
_AT_@ -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]
", basename(argv0));
 }
 
_AT_@ -1226,6 +1232,9 @@ main(int argc, char *argv[]) {
         case 'i':
                 loadimages = 0;
                 break;
+ case 'k':
+ kioskmode = 1;
+ break;
         case 'n':
                 enableinspector = 0;
                 break;
Received on Mon Mar 11 2013 - 21:29:06 CET

This archive was generated by hypermail 2.3.0 : Mon Mar 11 2013 - 21:36:15 CET