X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=a15ed00fc8bef0f0419bd8f0a32a78dd10cc44c7;hb=e96f191088efd2f687aeaa1903bd9b3c8133e1af;hp=a090dc879b2e43dc7d539134d331ae9e4934cacd;hpb=5501d75d2c97398d3ffddb200061cb93cc90bac3;p=surf.git diff --git a/surf.c b/surf.c index a090dc8..a15ed00 100644 --- a/surf.c +++ b/surf.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -497,14 +498,23 @@ loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) { void loaduri(Client *c, const Arg *arg) { - char *u; + char *u, *rp; const char *uri = (char *)arg->v; Arg a = { .b = FALSE }; if(strcmp(uri, "") == 0) return; - u = g_strrstr(uri, "://") ? g_strdup(uri) - : g_strdup_printf("http://%s", uri); + + /* In case it's a file path. */ + if(uri[0] == '/') { + rp = realpath(uri, NULL); + u = g_strdup_printf("file://%s", rp); + free(rp); + } else { + u = g_strrstr(uri, "://") ? g_strdup(uri) + : g_strdup_printf("http://%s", uri); + } + /* prevents endless loop */ if(c->uri && strcmp(u, c->uri) == 0) { reload(c, &a); @@ -976,11 +986,14 @@ windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObje void zoom(Client *c, const Arg *arg) { c->zoomed = TRUE; - if(arg->i < 0) /* zoom out */ + if(arg->i < 0) { + /* zoom out */ webkit_web_view_zoom_out(c->view); - else if(arg->i > 0) /* zoom in */ + } else if(arg->i > 0) { + /* zoom in */ webkit_web_view_zoom_in(c->view); - else { /* reset */ + } else { + /* reset */ c->zoomed = FALSE; webkit_web_view_set_zoom_level(c->view, 1.0); }