This commit is contained in:
Enno Boland (tox) 2010-05-09 22:41:11 +02:00
commit f304d0af52
3 changed files with 12 additions and 11 deletions

View File

@ -6,7 +6,8 @@ static char *stylefile = ".surf/style.css";
static char *scriptfile = ".surf/script.js"; static char *scriptfile = ".surf/script.js";
static char *cookiefile = ".surf/cookies.txt"; static char *cookiefile = ".surf/cookies.txt";
static char *dldir = ".surf/dl/"; static char *dldir = ".surf/dl/";
static time_t sessiontime = 3600; static time_t sessiontime = 0;
#define NOBACKGROUND 0
#define SETPROP(p) { .v = (char *[]){ "/bin/sh", "-c", \ #define SETPROP(p) { .v = (char *[]){ "/bin/sh", "-c", \
"prop=\"`xprop -id $1 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ "prop=\"`xprop -id $1 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \

View File

@ -7,8 +7,8 @@ VERSION = 0.4
PREFIX = /usr/local PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man MANPREFIX = ${PREFIX}/share/man
GTKINC=$(shell pkg-config --static --cflags gtk+-2.0 webkit-1.0) GTKINC=$(shell pkg-config --cflags gtk+-2.0 webkit-1.0)
GTKLIB=$(shell pkg-config --static --libs gtk+-2.0 webkit-1.0) GTKLIB=$(shell pkg-config --libs gtk+-2.0 webkit-1.0)
# includes and libs # includes and libs

16
surf.c
View File

@ -268,7 +268,7 @@ void
download(Client *c, const Arg *arg) { download(Client *c, const Arg *arg) {
char *uri; char *uri;
WebKitNetworkRequest *r; WebKitNetworkRequest *r;
WebKitDownload *dl; WebKitDownload *dl;
if(arg->v) if(arg->v)
uri = (char *)arg->v; uri = (char *)arg->v;
@ -434,11 +434,11 @@ linkhover(WebKitWebView *v, const char* t, const char* l, Client *c) {
void void
loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) { loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) {
if(c->download)
stop(c, NULL);
switch(webkit_web_view_get_load_status (c->view)) { switch(webkit_web_view_get_load_status (c->view)) {
case WEBKIT_LOAD_COMMITTED: case WEBKIT_LOAD_COMMITTED:
setatom(c, uriprop, geturi(c)); if(c->download)
stop(c, NULL);
setatom(c, uriprop, geturi(c));
break; break;
case WEBKIT_LOAD_FINISHED: case WEBKIT_LOAD_FINISHED:
c->progress = 0; c->progress = 0;
@ -584,6 +584,8 @@ newclient(void) {
g_free(uri); g_free(uri);
setatom(c, findprop, ""); setatom(c, findprop, "");
setatom(c, uriprop, ""); setatom(c, uriprop, "");
if(!NOBACKGROUND)
webkit_web_view_set_transparent(c->view, TRUE);
c->download = NULL; c->download = NULL;
c->title = NULL; c->title = NULL;
@ -605,9 +607,8 @@ newrequest(SoupSession *s, SoupMessage *msg, gpointer v) {
soup_message_headers_remove(h, "Cookie"); soup_message_headers_remove(h, "Cookie");
uri = soup_message_get_uri(msg); uri = soup_message_get_uri(msg);
if((c = getcookies(uri))) { if((c = getcookies(uri)))
soup_message_headers_append(h, "Cookie", c); soup_message_headers_append(h, "Cookie", c);
}
g_signal_connect_after(G_OBJECT(msg), "got-headers", G_CALLBACK(gotheaders), NULL); g_signal_connect_after(G_OBJECT(msg), "got-headers", G_CALLBACK(gotheaders), NULL);
} }
@ -727,7 +728,7 @@ setcookie(SoupCookie *c) {
SoupDate *e; SoupDate *e;
SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, FALSE); SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, FALSE);
c = soup_cookie_copy(c); c = soup_cookie_copy(c);
if(c->expires == NULL) { if(c->expires == NULL && sessiontime) {
e = soup_date_new_from_time_t(time(NULL) + sessiontime); e = soup_date_new_from_time_t(time(NULL) + sessiontime);
soup_cookie_set_expires(c, e); soup_cookie_set_expires(c, e);
} }
@ -776,7 +777,6 @@ setup(void) {
soup_session_remove_feature_by_type(s, soup_cookie_jar_get_type()); soup_session_remove_feature_by_type(s, soup_cookie_jar_get_type());
g_signal_connect_after(G_OBJECT(s), "request-started", G_CALLBACK(newrequest), NULL); g_signal_connect_after(G_OBJECT(s), "request-started", G_CALLBACK(newrequest), NULL);
/* proxy */ /* proxy */
if((proxy = getenv("http_proxy")) && strcmp(proxy, "")) { if((proxy = getenv("http_proxy")) && strcmp(proxy, "")) {
new_proxy = g_strrstr(proxy, "http://") ? g_strdup(proxy) : new_proxy = g_strrstr(proxy, "http://") ? g_strdup(proxy) :