-}
-
-void
-loaduri(Client *c, const Arg *arg)
-{
- char *u = NULL, *rp;
- const char *uri = (char *)arg->v;
- Arg a = { .b = FALSE };
- struct stat st;
-
- if (strcmp(uri, "") == 0)
- return;
-
- /* In case it's a file path. */
- if (stat(uri, &st) == 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);
- }
-
- setatom(c, AtomUri, uri);
-
- /* prevents endless loop */
- if (strcmp(u, geturi(c)) == 0) {
- reload(c, &a);
- } else {
- webkit_web_view_load_uri(c->view, u);
- c->progress = 0;
- c->title = copystr(&c->title, u);
- updatetitle(c);
- }
- g_free(u);
-}
-
-void
-navigate(Client *c, const Arg *arg)
-{
- int steps = *(int *)arg;
- webkit_web_view_go_back_or_forward(c->view, steps);
-}
-
-Client *
-newclient(Client *rc)
-{
- Client *c;
- gdouble dpi;
-
- if (!(c = calloc(1, sizeof(Client))))
- die("Cannot malloc!\n");
-
- c->title = NULL;
- c->progress = 100;
-
- c->next = clients;
- clients = c;
-
- c->view = newview(c, rc ? rc->view : NULL);
-
- return c;
-}
-
-WebKitWebView *
-newview(Client *c, WebKitWebView *rv)
-{
- WebKitWebView *v;
- WebKitSettings *settings;
- char *ua;
-
- /* Webview */
- if (rv) {
- v = WEBKIT_WEB_VIEW(
- webkit_web_view_new_with_related_view(rv));
- } else {
- v = WEBKIT_WEB_VIEW(webkit_web_view_new());
-
- settings = webkit_web_view_get_settings(v);
- if (!(ua = getenv("SURF_USERAGENT")))
- ua = useragent;
- g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
- g_object_set(G_OBJECT(settings),
- "auto-load-images", loadimages, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-plugins", enableplugins, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-scripts", enablescripts, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-spatial-navigation", enablespatialbrowsing, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-developer-extras", enableinspector, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-default-context-menu", kioskmode ^ 1, NULL);
- g_object_set(G_OBJECT(settings),
- "default-font-size", defaultfontsize, NULL);
- g_object_set(G_OBJECT(settings),
- "resizable-text-areas", 1, NULL);
- if (enablestyle)
- setstyle(c, getstyle("about:blank"));
-
- if (enableinspector) {
- c->inspector = webkit_web_view_get_inspector(v);
- g_signal_connect(G_OBJECT(c->inspector), "inspect-web-view",
- G_CALLBACK(inspector_new), c);
- g_signal_connect(G_OBJECT(c->inspector), "show-window",
- G_CALLBACK(inspector_show), c);
- g_signal_connect(G_OBJECT(c->inspector), "close-window",
- G_CALLBACK(inspector_close), c);
- g_signal_connect(G_OBJECT(c->inspector), "finished",
- G_CALLBACK(inspector_finished), c);
- c->isinspecting = false;
- }
- }