merge
authorEnno Boland (tox) <tox@s01.de>
Sun, 9 May 2010 20:41:11 +0000 (22:41 +0200)
committerEnno Boland (tox) <tox@s01.de>
Sun, 9 May 2010 20:41:11 +0000 (22:41 +0200)
1  2 
config.mk
surf.c

diff --combined config.mk
+++ b/config.mk
@@@ -7,8 -7,8 +7,8 @@@ VERSION = 0.
  PREFIX = /usr/local
  MANPREFIX = ${PREFIX}/share/man
  
- GTKINC=$(shell pkg-config --static --cflags gtk+-2.0 webkit-1.0)
- GTKLIB=$(shell pkg-config --static --libs gtk+-2.0 webkit-1.0)
+ GTKINC=$(shell pkg-config --cflags gtk+-2.0 webkit-1.0)
+ GTKLIB=$(shell pkg-config --libs gtk+-2.0 webkit-1.0)
  
  
  # includes and libs
@@@ -17,7 -17,7 +17,7 @@@ LIBS = -L/usr/lib -lc ${GTKLIB} -lgthre
  
  # flags
  CPPFLAGS = -DVERSION=\"${VERSION}\"
 -CFLAGS = -std=c99 -pedantic -Wall -O0 -g ${INCS} ${CPPFLAGS}
 +CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
  LDFLAGS = -g ${LIBS}
  
  # Solaris
diff --combined surf.c
--- 1/surf.c
--- 2/surf.c
+++ b/surf.c
@@@ -18,7 -18,6 +18,7 @@@
  #include <webkit/webkit.h>
  #include <glib/gstdio.h>
  #include <JavaScriptCore/JavaScript.h>
 +#include <sys/file.h>
  
  #define LENGTH(x)               (sizeof x / sizeof x[0])
  #define CLEANMASK(mask)         (mask & ~(GDK_MOD2_MASK))
@@@ -150,19 -149,6 +150,19 @@@ cleanup(void) 
        g_free(stylefile);
  }
  
 +void
 +runscript(WebKitWebFrame *frame, JSContextRef js) {
 +      JSStringRef jsscript;
 +      char *script;
 +      JSValueRef exception = NULL;
 +      GError *error;
 +      
 +      if(g_file_get_contents(scriptfile, &script, NULL, &error)) {
 +              jsscript = JSStringCreateWithUTF8CString(script);
 +              JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js), NULL, 0, &exception);
 +      }
 +}
 +
  void
  clipboard(Client *c, const Arg *arg) {
        gboolean paste = *(gboolean *)arg;
@@@ -268,7 -254,7 +268,7 @@@ voi
  download(Client *c, const Arg *arg) {
        char *uri;
        WebKitNetworkRequest *r;
-       WebKitDownload       *dl;
+       WebKitDownload *dl;
  
        if(arg->v)
                uri = (char *)arg->v;
@@@ -434,11 -420,11 +434,11 @@@ linkhover(WebKitWebView *v, const char
  
  void
  loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) {
-       if(c->download)
-               stop(c, NULL);
        switch(webkit_web_view_get_load_status (c->view)) {
        case WEBKIT_LOAD_COMMITTED:
-               setatom(c, uriprop, geturi(c));
+       if(c->download)
+               stop(c, NULL);
+       setatom(c, uriprop, geturi(c));
                break;
        case WEBKIT_LOAD_FINISHED:
                c->progress = 0;
@@@ -483,7 -469,6 +483,7 @@@ newclient(void) 
        int i;
        Client *c;
        WebKitWebSettings *settings;
 +      WebKitWebFrame *frame;
        GdkGeometry hints = { 1, 1 };
        char *uri, *ua;
  
        gdk_window_set_events(GTK_WIDGET(c->win)->window, GDK_ALL_EVENTS_MASK);
        gdk_window_add_filter(GTK_WIDGET(c->win)->window, processx, c);
        webkit_web_view_set_full_content_zoom(c->view, TRUE);
 +      frame = webkit_web_view_get_main_frame(c->view);
 +      runscript(frame, webkit_web_frame_get_global_context(frame));
        settings = webkit_web_view_get_settings(c->view);
        if(!(ua = getenv("SURF_USERAGENT")))
                ua = useragent;
        g_free(uri);
        setatom(c, findprop, "");
        setatom(c, uriprop, "");
+       if(!NOBACKGROUND)
+               webkit_web_view_set_transparent(c->view, TRUE);
  
        c->download = NULL;
        c->title = NULL;
@@@ -605,9 -590,8 +607,8 @@@ newrequest(SoupSession *s, SoupMessage 
  
        soup_message_headers_remove(h, "Cookie");
        uri = soup_message_get_uri(msg);
-       if((c = getcookies(uri))) {
+       if((c = getcookies(uri)))
                soup_message_headers_append(h, "Cookie", c);
-       }
        g_signal_connect_after(G_OBJECT(msg), "got-headers", G_CALLBACK(gotheaders), NULL);
  }
  
@@@ -720,21 -704,15 +721,21 @@@ scroll(Client *c, const Arg *arg) 
  
  void
  setcookie(SoupCookie *c) {
 +      int lock;
 +
 +      lock = open(cookiefile, 0);
 +      flock(lock, LOCK_EX);
        SoupDate *e;
        SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, FALSE);
        c = soup_cookie_copy(c);
-       if(c->expires == NULL) {
+       if(c->expires == NULL && sessiontime) {
                e = soup_date_new_from_time_t(time(NULL) + sessiontime);
                soup_cookie_set_expires(c, e);
        }
        soup_cookie_jar_add_cookie(j, c);
        g_object_unref(j);
 +      flock(lock, LOCK_UN);
 +      close(lock);
  }
  
  void
@@@ -776,7 -754,6 +777,6 @@@ setup(void) 
        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);
  
        /* proxy */
        if((proxy = getenv("http_proxy")) && strcmp(proxy, "")) {
                new_proxy = g_strrstr(proxy, "http://") ? g_strdup(proxy) :
@@@ -876,7 -853,15 +876,7 @@@ usage(void) 
  
  void
  windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) {
 -      JSStringRef jsscript;
 -      char *script;
 -      JSValueRef exception = NULL;
 -      GError *error;
 -      
 -      if(g_file_get_contents(scriptfile, &script, NULL, &error)) {
 -              jsscript = JSStringCreateWithUTF8CString(script);
 -              JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js), NULL, 0, &exception);
 -      }
 +      runscript(frame, js);
  }
  
  void