X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=f0be24be464b50358fdb836334776fa8cc601dbc;hb=9eedabe3487193e29b0fe5f29a8d30dc314026cc;hp=dfcd7876ad8e106ddced32ae63e1fcd0480fd94e;hpb=f3d97922e9f513dba3107559deec8c04ad4461e1;p=surf.git diff --git a/surf.c b/surf.c index dfcd787..f0be24b 100644 --- a/surf.c +++ b/surf.c @@ -47,7 +47,7 @@ typedef struct Client { WebKitWebView *view; WebKitWebInspector *inspector; char *title, *linkhover; - const char *uri, *needle; + const char *needle; gint progress; struct Client *next; gboolean zoomed, fullscreen, isinspecting, sslfailed; @@ -241,7 +241,8 @@ buttonrelease(WebKitWebView *web, GdkEventButton *e, GList *gl) { g_object_get(result, "context", &context, NULL); if(context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) { - if(e->button == 2) { + if(e->button == 2 || + (e->button == 1 && CLEANMASK(e->state) == CLEANMASK(MODKEY))) { g_object_get(result, "link-uri", &arg.v, NULL); newwindow(NULL, &arg, e->state & GDK_CONTROL_MASK); return true; @@ -634,8 +635,10 @@ loaduri(Client *c, const Arg *arg) { : g_strdup_printf("http://%s", uri); } + setatom(c, AtomUri, uri); + /* prevents endless loop */ - if(c->uri && strcmp(u, c->uri) == 0) { + if(strcmp(u, geturi(c)) == 0) { reload(c, &a); } else { webkit_web_view_load_uri(c->view, u); @@ -818,6 +821,9 @@ newclient(void) { webkit_web_view_set_zoom_level(c->view, dpi/96); } } + /* This might conflict with _zoomto96dpi_. */ + if(zoomlevel != 1.0) + webkit_web_view_set_zoom_level(c->view, zoomlevel); if(enableinspector) { c->inspector = WEBKIT_WEB_INSPECTOR( @@ -1279,7 +1285,8 @@ static void usage(void) { die("usage: %s [-bBfFgGiIkKnNpPsSvx]" " [-c cookiefile] [-e xid] [-r scriptfile]" - " [-t stylefile] [-u useragent] [uri]\n", basename(argv0)); + " [-t stylefile] [-u useragent] [-z zoomlevel]" + " [uri]\n", basename(argv0)); } static void @@ -1381,6 +1388,9 @@ main(int argc, char *argv[]) { case 'x': showxid = TRUE; break; + case 'z': + zoomlevel = strtof(EARGF(usage()), NULL); + break; default: usage(); } ARGEND;