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;