tApplying Nibbles download patch. Thanks! - surf - customized build of surf, th… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 7330d0e26190e40fd857546b4cbc46855c75aeaa | |
parent 7d3d996a3dd355a6382c9976f9734e593daad26c | |
Author: Enno Boland (tox) <[email protected]> | |
Date: Wed, 26 May 2010 15:33:01 +0200 | |
Applying Nibbles download patch. Thanks! | |
Diffstat: | |
M config.def.h | 6 ++++++ | |
M surf.c | 14 ++++++++++++++ | |
2 files changed, 20 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -12,9 +12,15 @@ static time_t sessiontime = 0; | |
"prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ | |
"xprop -id $2 -f $1 8s -set $1 \"$prop\"", \ | |
p, q, winid, NULL } } | |
+#define DOWNLOAD(p) { \ | |
+ .v = (char *[]){ "/bin/sh", "-c", \ | |
+ "prop=\"`xprop -id $1 $0 | cut -d '\"' -f 2`\";" \ | |
+ "xterm -e \"wget --load-cookies ~/.surf/cookies.txt $prop;\"", \ | |
+ p, winid, NULL } } | |
#define MODKEY GDK_CONTROL_MASK | |
static Key keys[] = { | |
/* modifier keyval function arg Foc… | |
+ { MODKEY, GDK_s, spawn, DOWNLOAD("_SURF_HILIGHT") … | |
{ MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } }, | |
{ MODKEY, GDK_r, reload, { .b = FALSE } }, | |
{ MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } }, | |
diff --git a/surf.c b/surf.c | |
t@@ -81,6 +81,7 @@ static const char *getatom(Client *c, int a); | |
static const char *getcookies(SoupURI *uri); | |
static char *geturi(Client *c); | |
void gotheaders(SoupMessage *msg, gpointer user_data); | |
+static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c); | |
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c); | |
static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *… | |
static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c… | |
t@@ -329,6 +330,16 @@ gotheaders(SoupMessage *msg, gpointer v) { | |
} | |
gboolean | |
+initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { | |
+ Arg arg; | |
+ | |
+ updatewinid(c); | |
+ cmd = (Arg)DOWNLOAD("_SURF_HILIGHT"); | |
+ spawn(c, &cmg); | |
+ return FALSE; | |
+} | |
+ | |
+gboolean | |
keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { | |
guint i; | |
gboolean processed = FALSE; | |
t@@ -454,6 +465,7 @@ newclient(void) { | |
g_signal_connect(G_OBJECT(c->view), "window-object-cleared", G_CALLBAC… | |
g_signal_connect(G_OBJECT(c->view), "notify::load-status", G_CALLBACK(… | |
g_signal_connect(G_OBJECT(c->view), "notify::progress", G_CALLBACK(pro… | |
+ g_signal_connect(G_OBJECT(c->view), "download-requested", G_CALLBACK(i… | |
/* Indicator */ | |
c->indicator = gtk_drawing_area_new(); | |
t@@ -495,6 +507,7 @@ newclient(void) { | |
setatom(c, AtomFind, ""); | |
setatom(c, AtomUri, "about:blank"); | |
+ setatom(c, AtomHiLight, "about:blank"); | |
if(NOBACKGROUND) | |
webkit_web_view_set_transparent(c->view, TRUE); | |
t@@ -750,6 +763,7 @@ update(Client *c) { | |
t = g_strdup(c->linkhover); | |
else | |
t = g_strdup(c->title); | |
+ setatom(c, AtomHiLight, c->linkhover ? c->linkhover : geturi(c)); | |
drawindicator(c); | |
gtk_window_set_title(GTK_WINDOW(c->win), t); | |
g_free(t); |