apply nick's patch removing unused variable and parameters
[surf.git] / surf.c
diff --git a/surf.c b/surf.c
index 492c836..f7cba3e 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -95,8 +95,9 @@ static void print(Client *c, const Arg *arg);
 static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
 static void progresschange(WebKitWebView *view, GParamSpec *pspec, Client *c);
 static void reload(Client *c, const Arg *arg);
-static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
-static void scroll(Client *c, const Arg *arg);
+static void scroll_h(Client *c, const Arg *arg);
+static void scroll_v(Client *c, const Arg *arg);
+static void scroll(GtkAdjustment *a, const Arg *arg);
 static void setatom(Client *c, int a, const char *v);
 static void setcookie(SoupCookie *c);
 static void setup(void);
@@ -127,12 +128,15 @@ buildpath(const char *path) {
                apath = g_strconcat(g_get_home_dir(), "/", path, NULL);
        if((p = strrchr(apath, '/'))) {
                *p = '\0';
-               g_mkdir_with_parents(apath, 0755);
+               g_mkdir_with_parents(apath, 0700);
+               g_chmod(apath, 0700); /* in case it existed */
                *p = '/';
        }
        /* creating file (gives error when apath ends with "/") */
-       if((f = fopen(apath, "a")))
+       if((f = fopen(apath, "a"))) {
+               g_chmod(apath, 0600); /* always */
                fclose(f);
+       }
        return apath;
 }
 
@@ -146,7 +150,7 @@ cleanup(void) {
 }
 
 void
-evalscript(WebKitWebFrame *frame, JSContextRef js, char *script, char* scriptname) {
+evalscript(JSContextRef js, char *script, char* scriptname) {
        JSStringRef jsscript, jsscriptname;
        JSValueRef exception = NULL;
 
@@ -158,12 +162,12 @@ evalscript(WebKitWebFrame *frame, JSContextRef js, char *script, char* scriptnam
 }
 
 void
-runscript(WebKitWebFrame *frame, JSContextRef js) {
+runscript(WebKitWebFrame *frame) {
        char *script;
        GError *error;
 
        if(g_file_get_contents(scriptfile, &script, NULL, &error)) {
-               evalscript(frame, webkit_web_frame_get_global_context(frame), script, scriptfile);
+               evalscript(webkit_web_frame_get_global_context(frame), script, scriptfile);
        }
 }
 
@@ -329,10 +333,8 @@ geturi(Client *c) {
 
 void
 gotheaders(SoupMessage *msg, gpointer v) {
-       SoupURI *uri;
        GSList *l, *p;
 
-       uri = soup_message_get_uri(msg);
        for(p = l = soup_cookies_from_response(msg); p;
                p = g_slist_next(p))  {
                setcookie((SoupCookie *)p->data);
@@ -461,7 +463,7 @@ newclient(void) {
                 * window class (WM_CLASS) is capped, while the resource is in
                 * lowercase.   Both these values come as a pair.
                 */
-               gtk_window_set_wmclass(GTK_WINDOW(c->win), "surf", "surf");
+               gtk_window_set_wmclass(GTK_WINDOW(c->win), "surf", "Surf");
 
                /* TA:  20091214:  And set the role here as well -- so that
                 * sessions can pick this up.
@@ -471,7 +473,6 @@ newclient(void) {
        gtk_window_set_default_size(GTK_WINDOW(c->win), 800, 600);
        g_signal_connect(G_OBJECT(c->win), "destroy", G_CALLBACK(destroywin), c);
        g_signal_connect(G_OBJECT(c->win), "key-press-event", G_CALLBACK(keypress), c);
-       g_signal_connect(G_OBJECT(c->win), "size-allocate", G_CALLBACK(resize), c);
 
        /* VBox */
        c->vbox = gtk_vbox_new(FALSE, 0);
@@ -519,7 +520,7 @@ newclient(void) {
        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));
+       runscript(frame);
        settings = webkit_web_view_get_settings(c->view);
        if(!(ua = getenv("SURF_USERAGENT")))
                ua = useragent;
@@ -529,7 +530,7 @@ newclient(void) {
        g_object_set(G_OBJECT(settings), "auto-load-images", loadimage, NULL);
        g_object_set(G_OBJECT(settings), "enable-plugins", plugin, NULL);
        g_object_set(G_OBJECT(settings), "enable-scripts", script, NULL);
-       g_object_set(G_OBJECT(settings), "enable-spatial-navigation", true, NULL);
+       g_object_set(G_OBJECT(settings), "enable-spatial-navigation", SPATIAL_BROWSING, NULL);
 
        g_free(uri);
 
@@ -545,6 +546,9 @@ newclient(void) {
                gdk_display_sync(gtk_widget_get_display(c->win));
                printf("%u\n", (guint)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
                fflush(NULL);
+                if (fclose(stdout) != 0) {
+                       die("Error closing stdout");
+                }
        }
        return c;
 }
@@ -643,29 +647,32 @@ reload(Client *c, const Arg *arg) {
 }
 
 void
-resize(GtkWidget *w, GtkAllocation *a, Client *c) {
-       double zoom;
+scroll_h(Client *c, const Arg *arg) {
+ scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
+}
 
-       if(c->zoomed)
-               return;
-       zoom = webkit_web_view_get_zoom_level(c->view);
-       if(a->width * a->height < 300 * 400 && zoom != 0.2)
-               webkit_web_view_set_zoom_level(c->view, 0.2);
-       else if(zoom != 1.0)
-               webkit_web_view_set_zoom_level(c->view, 1.0);
+void
+scroll_v(Client *c, const Arg *arg) {
+ scroll(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
 }
 
 void
-scroll(Client *c, const Arg *arg) {
-       gdouble v;
-       GtkAdjustment *a;
+scroll(GtkAdjustment *a, const Arg *arg) {
+ gdouble v;
 
-       a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
-       v = gtk_adjustment_get_value(a);
-       v += gtk_adjustment_get_step_increment(a) * arg->i;
-       v = MAX(v, 0.0);
-       v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
-       gtk_adjustment_set_value(a, v);
+ v = gtk_adjustment_get_value(a);
+ switch (arg->i){
+ case +10000:
+ case -10000:
+ v += gtk_adjustment_get_page_increment(a) * (arg->i / 10000); break;
+ case +20000:
+ case -20000:
+ default:
+ v += gtk_adjustment_get_step_increment(a) * arg->i;
+ }
+ v = MAX(v, 0.0);
+ v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
+ gtk_adjustment_set_value(a, v);
 }
 
 void
@@ -775,7 +782,7 @@ spawn(Client *c, const Arg *arg) {
 void
 eval(Client *c, const Arg *arg) {
        WebKitWebFrame *frame = webkit_web_view_get_main_frame(c->view);
-       evalscript(frame, webkit_web_frame_get_global_context(frame), ((char **)arg->v)[0], "");
+       evalscript(webkit_web_frame_get_global_context(frame), ((char **)arg->v)[0], "");
 }
 
 void
@@ -793,10 +800,10 @@ void
 update(Client *c) {
        char *t;
 
-       if(c->progress != 100)
-               t = g_strdup_printf("[%i%%] %s", c->progress, c->title);
-       else if(c->linkhover)
+       if(c->linkhover)
                t = g_strdup(c->linkhover);
+        else if(c->progress != 100)
+               t = g_strdup_printf("[%i%%] %s", c->progress, c->title);
        else
                t = g_strdup(c->title);
        drawindicator(c);
@@ -818,7 +825,7 @@ usage(void) {
 
 void
 windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) {
-       runscript(frame, js);
+       runscript(frame);
 }
 
 void
@@ -867,7 +874,7 @@ main(int argc, char *argv[]) {
                        showxid = TRUE;
                        break;
                case 'v':
-                       die("surf-"VERSION", © 2009 surf engineers, see LICENSE for details\n");
+                       die("surf-"VERSION", ©2009-2012 surf engineers, see LICENSE for details\n");
                default:
                        usage();
                }