about summary refs log tree commit diff
path: root/surf.c
diff options
context:
space:
mode:
authorEnno Boland (tox) <tox@s01.de>2009-10-20 20:34:13 +0200
committerEnno Boland (tox) <tox@s01.de>2009-10-20 20:34:13 +0200
commit92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f (patch)
treeda8d579f6bb6fb50b8577d9d5e4606f4270975fd /surf.c
parentusing another way to handle cookies. (diff)
downloadsurf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.tar.gz
surf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.tar.bz2
surf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.zip
adding autozoom for small windows
Diffstat (limited to 'surf.c')
-rw-r--r--surf.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/surf.c b/surf.c
index dca14de..cd01b83 100644
--- a/surf.c
+++ b/surf.c
@@ -106,6 +106,7 @@ static void print(Client *c, const Arg *arg);
 static void progresschange(WebKitWebView *v, gint p, Client *c);
 static void reloadcookies();
 static void reload(Client *c, const Arg *arg);
+static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
 static void sigchld(int unused);
 static void setup(void);
 static void spawn(Client *c, const Arg *arg);
@@ -470,6 +471,7 @@ 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);
 
 	if(!(c->items = calloc(1, sizeof(GtkWidget *) * LENGTH(items))))
 		die("Cannot malloc!\n");
@@ -675,6 +677,19 @@ scroll(Client *c, const Arg *arg) {
 }
 
 void
+resize(GtkWidget *w, GtkAllocation *a, Client *c) {
+	double zoom;
+
+	zoom = webkit_web_view_get_zoom_level(c->view);
+	if(a->width * a->height < 300 * 300 && 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
 sigchld(int unused) {
 	if(signal(SIGCHLD, sigchld) == SIG_ERR)
 		die("Can't install SIGCHLD handler");