- /* Arranging */
- gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
- gtk_container_add(GTK_CONTAINER(c->win), c->pane);
- gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
-
- /* Setup */
- gtk_box_set_child_packing(GTK_BOX(c->vbox), c->scroll, TRUE,
- TRUE, 0, GTK_PACK_START);
- gtk_widget_grab_focus(GTK_WIDGET(c->view));
- gtk_widget_show(c->pane);
- gtk_widget_show(c->vbox);
- gtk_widget_show(c->scroll);
- gtk_widget_show(GTK_WIDGET(c->view));
- gtk_widget_show(c->win);
- gtk_window_set_geometry_hints(GTK_WINDOW(c->win), NULL, &hints,
- GDK_HINT_MIN_SIZE);
- gdk_window_set_events(GTK_WIDGET(c->win)->window, GDK_ALL_EVENTS_MASK);
- gdk_window_add_filter(GTK_WIDGET(c->win)->window, processx, c);
- webkit_web_view_set_full_content_zoom(c->view, TRUE);
-
- runscript(frame);
-
- settings = webkit_web_view_get_settings(c->view);
- if(!(ua = getenv("SURF_USERAGENT")))
- ua = useragent;
- g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
- if (enablestyles) {
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri",
- getstyle("about:blank"), 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);
-
- /*
- * While stupid, CSS specifies that a pixel represents 1/96 of an inch.
- * This ensures websites are not unusably small with a high DPI screen.
- * It is equivalent to firefox's "layout.css.devPixelsPerPx" setting.
- */
- if(zoomto96dpi) {
- screen = gdk_window_get_screen(GTK_WIDGET(c->win)->window);
- dpi = gdk_screen_get_resolution(screen);
- if(dpi != -1) {
- g_object_set(G_OBJECT(settings), "enforce-96-dpi", true,
- NULL);
- 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(
- webkit_web_view_get_inspector(c->view));
- 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;
- }
-
- if(runinfullscreen) {
- c->fullscreen = 0;
- fullscreen(c, NULL);
- }
-
- setatom(c, AtomFind, "");
- setatom(c, AtomUri, "about:blank");
- if(hidebackground)
- webkit_web_view_set_transparent(c->view, TRUE);
-
- c->next = clients;
- clients = c;
-
- if(showxid) {
- gdk_display_sync(gtk_widget_get_display(c->win));
- printf("%u\n",
- (guint)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
- fflush(NULL);
- if (fclose(stdout) != 0) {
- die("Error closing stdout");
- }
- }
-
- return c;
-}
-
-static void
-newwindow(Client *c, const Arg *arg, gboolean noembed) {
- guint i = 0;
- const char *cmd[18], *uri;
- const Arg a = { .v = (void *)cmd };
- char tmp[64];
-
- cmd[i++] = argv0;
- cmd[i++] = "-a";
- cmd[i++] = cookiepolicies;
- if(!enablescrollbars)
- cmd[i++] = "-b";
- if(embed && !noembed) {
- cmd[i++] = "-e";
- snprintf(tmp, LENGTH(tmp), "%u", (int)embed);
- cmd[i++] = tmp;