tadding autozoom for small windows - surf - customized build of surf, the suckl… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 92afa03d80ba077f7a5b1dc1bd44d82ab1d35b8f | |
parent f277dbd3d2493c019ed341f62ac6d16c09a806bc | |
Author: Enno Boland (tox) <[email protected]> | |
Date: Tue, 20 Oct 2009 20:34:13 +0200 | |
adding autozoom for small windows | |
Diffstat: | |
M surf.c | 15 +++++++++++++++ | |
1 file changed, 15 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/surf.c b/surf.c | |
t@@ -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); | |
t@@ -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), … | |
g_signal_connect(G_OBJECT(c->win), "key-press-event", G_CALLBACK(keypr… | |
+ g_signal_connect(G_OBJECT(c->win), "size-allocate", G_CALLBACK(resize)… | |
if(!(c->items = calloc(1, sizeof(GtkWidget *) * LENGTH(items)))) | |
die("Cannot malloc!\n"); | |
t@@ -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"); |