tImporting the generic toggle patch of stanio@cs.tu-berlin.de. Thanks! - 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 a283fa4bc93167c0f59fcd32bd19a6729d8e057d
 (DIR) parent 244dfd3231d989909566727b9e20d10cdff88a20
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Thu, 15 Nov 2012 14:52:22 +0100
       
       Importing the generic toggle patch of stanio@cs.tu-berlin.de. Thanks!
       Diffstat:
         M config.def.h                        |       4 ++++
         M surf.c                              |      15 +++++++++++++++
       
       2 files changed, 19 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -52,5 +52,9 @@ static Key keys[] = {
            { MODKEY,               GDK_slash,  spawn,      SETPROP("_SURF_FIND", "_SURF_FIND") },
            { MODKEY,               GDK_n,      find,       { .b = TRUE } },
            { MODKEY|GDK_SHIFT_MASK,GDK_n,      find,       { .b = FALSE } },
       +    { MODKEY,               GDK_v,      toggle,     { .v = "enable-plugins" } },
       +    { MODKEY|GDK_SHIFT_MASK,GDK_i,      toggle,     { .v = "auto-load-images" } },
       +    { MODKEY,               GDK_c,      toggle,     { .v = "enable-caret-browsing" } },
       +    { MODKEY|GDK_SHIFT_MASK,GDK_s,      toggle,     { .v = "enable-scripts" } },
        };
        
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -126,6 +126,7 @@ static void spawn(Client *c, const Arg *arg);
        static void eval(Client *c, const Arg *arg);
        static void stop(Client *c, const Arg *arg);
        static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* title, Client *c);
       +static void toggle(Client *c, const Arg *arg);
        static void update(Client *c);
        static void updatewinid(Client *c);
        static void usage(void);
       t@@ -890,6 +891,20 @@ titlechange(WebKitWebView *v, WebKitWebFrame *f, const char *t, Client *c) {
        }
        
        void
       +toggle(Client *c, const Arg *arg) { 
       +  WebKitWebSettings *settings;
       +  char *name = (char *)arg->v;
       +  gboolean value;
       +  Arg a = { .b = FALSE };
       +
       +  settings = webkit_web_view_get_settings(c->view);
       +  g_object_get(G_OBJECT(settings), name, &value, NULL);
       +  g_object_set(G_OBJECT(settings), name, !value, NULL);
       +
       +  reload(c,&a);
       +}
       +
       +void
        update(Client *c) {
                char *t;