- view = WEBKIT_WEB_VIEW(webkit_web_view_new());
- gtk_container_add(GTK_CONTAINER(browser), GTK_WIDGET(view));
-
- g_signal_connect(G_OBJECT(view), "title-changed", G_CALLBACK(titlechange), view);
- g_signal_connect(G_OBJECT(view), "load-progress-changed", G_CALLBACK(progresschange), view);
- g_signal_connect(G_OBJECT(view), "load-committed", G_CALLBACK(loadcommit), view);
- g_signal_connect(G_OBJECT(view), "load-started", G_CALLBACK(loadstart), view);
- g_signal_connect(G_OBJECT(view), "load-finished", G_CALLBACK(loadfinish), view);
- g_signal_connect(G_OBJECT(view), "hovering-over-link", G_CALLBACK(linkhover), view);
- g_signal_connect(G_OBJECT(view), "new-window-policy-decision-requested", G_CALLBACK(newwindow), view);
- g_signal_connect(G_OBJECT(view), "download-requested", G_CALLBACK(download), view);
- /* g_signal_connect(G_OBJECT(view), "create-web-view", G_CALLBACK(createwebview), view); */
-
- gtk_container_add(GTK_CONTAINER(win), browser);
- gtk_widget_grab_focus(GTK_WIDGET(view));
- gtk_widget_show_all(win);
+
+ /* 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), "load-progress-changed", G_CALLBACK(progresschange), c);
+ g_signal_connect(G_OBJECT(c->view), "load-committed", G_CALLBACK(loadcommit), c);
+ g_signal_connect(G_OBJECT(c->view), "load-started", G_CALLBACK(loadstart), 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(newwindow), c);
+ g_signal_connect(G_OBJECT(c->view), "download-requested", G_CALLBACK(initdownload), c);
+ g_signal_connect_after(session, "request-started", G_CALLBACK(request), c);
+
+ /* urlbar */
+ c->urlbar = gtk_entry_new();
+ gtk_entry_set_has_frame(GTK_ENTRY(c->urlbar), FALSE);
+
+ /* searchbar */
+ c->searchbar = gtk_entry_new();
+ gtk_entry_set_has_frame(GTK_ENTRY(c->searchbar), FALSE);
+
+ /* downloadbar */
+
+ /* 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->searchbar);
+ gtk_container_add(GTK_CONTAINER(c->vbox), c->urlbar);
+
+ /* Setup */
+ gtk_box_set_child_packing(GTK_BOX(c->vbox), c->urlbar, FALSE, FALSE, 0, GTK_PACK_START);
+ gtk_box_set_child_packing(GTK_BOX(c->vbox), c->searchbar, 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_hide_all(c->searchbar);
+ gtk_widget_hide_all(c->urlbar);
+ gtk_widget_show(c->vbox);
+ gtk_widget_show(c->scroll);
+ gtk_widget_show(GTK_WIDGET(c->view));
+ gtk_widget_show(c->win);
+ 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);
+ c->download = NULL;
+ c->title = NULL;
+ c->next = clients;
+ clients = c;