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);
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;
}
* 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.
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);
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;
}
}
void
-scroll(Client *c, const Arg *arg) {
- gdouble v;
- GtkAdjustment *a;
+scroll_h(Client *c, const Arg *arg) {
+ scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
+}
- 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);
+void
+scroll_v(Client *c, const Arg *arg) {
+ scroll(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
+}
+
+void
+scroll(GtkAdjustment *a, const Arg *arg) {
+ gdouble 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
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);
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();
}