diff options
author | Enno Boland (tox) <tox@s01.de> | 2009-10-20 20:34:13 +0200 |
---|---|---|
committer | Enno Boland (tox) <tox@s01.de> | 2009-10-20 20:34:13 +0200 |
commit | 92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f (patch) | |
tree | da8d579f6bb6fb50b8577d9d5e4606f4270975fd | |
parent | f277dbd3d2493c019ed341f62ac6d16c09a806bc (diff) | |
download | surf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.tar.gz surf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.tar.bz2 surf-92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f.zip |
adding autozoom for small windows
-rw-r--r-- | surf.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -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"); |