X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=62b4948d47ee03ffdbd057812a9ed02f23009dcb;hb=94601622a1494f9f7ffb514f662cd118c5c86dc1;hp=796ee968976d434b6a3aee2d1e640aeeab558fd1;hpb=b18189d016e99e1e352cbe586c85c49ce2ca2f5d;p=surf.git diff --git a/surf.c b/surf.c index 796ee96..62b4948 100644 --- a/surf.c +++ b/surf.c @@ -435,14 +435,23 @@ void loaduri(Client *c, const Arg *arg) { char *u; 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); - webkit_web_view_load_uri(c->view, u); - c->progress = 0; - c->title = copystr(&c->title, u); - g_free(u); - update(c); + /* prevents endless loop */ + if(c->uri && strcmp(u, c->uri) == 0) { + reload(c, &a); + } + else { + webkit_web_view_load_uri(c->view, u); + c->progress = 0; + c->title = copystr(&c->title, u); + g_free(u); + update(c); + } } void @@ -551,6 +560,7 @@ newclient(void) { g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL); g_free(uri); setatom(c, findprop, ""); + setatom(c, uriprop, ""); c->download = NULL; c->title = NULL;