surf-0.3-agent.diff (2094B)
1 diff -r 46d516fd2167 config.def.h 2 --- a/config.def.h Fri Oct 30 13:38:14 2009 +0100 3 +++ b/config.def.h Fri Oct 30 10:26:39 2009 -0700 4 @@ -29,6 +29,7 @@ 5 { MODKEY, GDK_k, scroll, { .i = -1 } }, 6 { 0, GDK_Escape, stop, { 0 } }, 7 { MODKEY, GDK_o, source, { 0 } }, 8 + { MODKEY, GDK_a, spawn, SETPROP("_SURF_AGENT") }, 9 { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI") }, 10 { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND") }, 11 { MODKEY, GDK_n, find, { .b = TRUE } }, 12 diff -r 46d516fd2167 surf.c 13 --- a/surf.c Fri Oct 30 13:38:14 2009 +0100 14 +++ b/surf.c Fri Oct 30 10:26:39 2009 -0700 15 @@ -55,7 +55,7 @@ 16 } Key; 17 18 static Display *dpy; 19 -static Atom uriprop, findprop; 20 +static Atom uriprop, findprop, agentprop; 21 static SoupCookieJar *cookies; 22 static SoupSession *session; 23 static Client *clients = NULL; 24 @@ -119,6 +119,16 @@ 25 /* configuration, allows nested code to access above variables */ 26 #include "config.h" 27 28 +void 29 +agent(Client *c, const Arg *arg) { 30 + const char *s; 31 + WebKitWebSettings *settings; 32 + 33 + s = getatom(c, agentprop); 34 + settings = webkit_web_view_get_settings(c->view); 35 + g_object_set(G_OBJECT(settings), "user-agent", s, NULL); 36 +} 37 + 38 char * 39 buildpath(const char *path) { 40 char *apath, *p; 41 @@ -537,6 +547,7 @@ 42 g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL); 43 g_free(uri); 44 setatom(c, findprop, ""); 45 + setatom(c, agentprop, useragent); 46 47 c->download = NULL; 48 c->title = NULL; 49 @@ -605,6 +616,10 @@ 50 arg.b = TRUE; 51 find(c, &arg); 52 } 53 + else if(ev->atom == agentprop) { 54 + arg.v = getatom(c, agentprop); 55 + agent(c, &arg); 56 + } 57 return GDK_FILTER_REMOVE; 58 } 59 } 60 @@ -692,6 +707,7 @@ 61 session = webkit_get_default_session(); 62 uriprop = XInternAtom(dpy, "_SURF_URI", False); 63 findprop = XInternAtom(dpy, "_SURF_FIND", False); 64 + agentprop = XInternAtom(dpy, "_SURF_AGENT", False); 65 66 /* create dirs and files */ 67 cookiefile = buildpath(cookiefile);