- /* Webview */
- c->view = WEBKIT_WEB_VIEW(webkit_web_view_new());
- g_signal_connect(G_OBJECT(c->view),
- "title-changed",
- G_CALLBACK(titlechange), c);
- g_signal_connect(G_OBJECT(c->view),
- "hovering-over-link",
- G_CALLBACK(linkhover), c);
- g_signal_connect(G_OBJECT(c->view),
- "create-web-view",
- G_CALLBACK(createwindow), c);
- g_signal_connect(G_OBJECT(c->view),
- "new-window-policy-decision-requested",
- G_CALLBACK(decidewindow), c);
- g_signal_connect(G_OBJECT(c->view),
- "mime-type-policy-decision-requested",
- G_CALLBACK(decidedownload), c);
- g_signal_connect(G_OBJECT(c->view),
- "window-object-cleared",
- G_CALLBACK(windowobjectcleared), c);
- g_signal_connect(G_OBJECT(c->view),
- "notify::load-status",
- G_CALLBACK(loadstatuschange), c);
- g_signal_connect(G_OBJECT(c->view),
- "notify::progress",
- G_CALLBACK(progresschange), c);
- g_signal_connect(G_OBJECT(c->view),
- "download-requested",
- G_CALLBACK(initdownload), c);
- g_signal_connect(G_OBJECT(c->view),
- "button-release-event",
- G_CALLBACK(buttonrelease), c);
- g_signal_connect(G_OBJECT(c->view),
- "populate-popup",
- G_CALLBACK(populatepopup), c);
- g_signal_connect(G_OBJECT(c->view),
- "resource-request-starting",
- G_CALLBACK(beforerequest), c);
-
- /* Indicator */
- c->indicator = gtk_drawing_area_new();
- gtk_widget_set_size_request(c->indicator, 0, indicator_thickness);
- g_signal_connect (G_OBJECT (c->indicator), "expose_event",
- G_CALLBACK (exposeindicator), c);
-
- /* Arranging */
- gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
- gtk_container_add(GTK_CONTAINER(c->win), c->vbox);
- gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
- gtk_container_add(GTK_CONTAINER(c->vbox), c->indicator);
-
- /* Setup */
- gtk_box_set_child_packing(GTK_BOX(c->vbox), c->indicator, FALSE,
- FALSE, 0, GTK_PACK_START);
- 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->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);
-
- frame = webkit_web_view_get_main_frame(c->view);
- 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);
- uri = g_strconcat("file://", stylefile, NULL);
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, 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);
-
- 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->isinspector = false;
- }