surf-0.3-agent.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
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);