Scrolling is now handled through WebKit
We don't have access anymore to the scrolling process and have to rely entirely on WebKit. We could be able to manage scrolling and bars directly by manipulating the DOM via a WebKitExtension. To be continued…
This commit is contained in:
parent
94f2f2eace
commit
42829cdad0
1 changed files with 2 additions and 34 deletions
36
surf.c
36
surf.c
|
@ -53,7 +53,7 @@ union Arg {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct Client {
|
typedef struct Client {
|
||||||
GtkWidget *win, *scroll, *vbox, *pane;
|
GtkWidget *win;
|
||||||
Window xid;
|
Window xid;
|
||||||
WebKitWebView *view;
|
WebKitWebView *view;
|
||||||
WebKitWebInspector *inspector;
|
WebKitWebInspector *inspector;
|
||||||
|
@ -778,7 +778,6 @@ newclient(void)
|
||||||
{
|
{
|
||||||
Client *c;
|
Client *c;
|
||||||
WebKitWebSettings *settings;
|
WebKitWebSettings *settings;
|
||||||
WebKitWebFrame *frame;
|
|
||||||
GdkGeometry hints = { 1, 1 };
|
GdkGeometry hints = { 1, 1 };
|
||||||
GdkScreen *screen;
|
GdkScreen *screen;
|
||||||
GdkWindow *gwin;
|
GdkWindow *gwin;
|
||||||
|
@ -822,13 +821,6 @@ newclient(void)
|
||||||
if (!kioskmode)
|
if (!kioskmode)
|
||||||
addaccelgroup(c);
|
addaccelgroup(c);
|
||||||
|
|
||||||
/* Pane */
|
|
||||||
c->pane = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
|
|
||||||
|
|
||||||
/* VBox */
|
|
||||||
c->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
|
||||||
gtk_paned_pack1(GTK_PANED(c->pane), c->vbox, TRUE, TRUE);
|
|
||||||
|
|
||||||
/* Webview */
|
/* Webview */
|
||||||
c->view = WEBKIT_WEB_VIEW(webkit_web_view_new());
|
c->view = WEBKIT_WEB_VIEW(webkit_web_view_new());
|
||||||
|
|
||||||
|
@ -875,35 +867,11 @@ newclient(void)
|
||||||
"should-show-delete-interface-for-element",
|
"should-show-delete-interface-for-element",
|
||||||
G_CALLBACK(deletion_interface), c);
|
G_CALLBACK(deletion_interface), c);
|
||||||
|
|
||||||
/* Scrolled Window */
|
|
||||||
c->scroll = gtk_scrolled_window_new(NULL, NULL);
|
|
||||||
|
|
||||||
frame = webkit_web_view_get_main_frame(WEBKIT_WEB_VIEW(c->view));
|
|
||||||
g_signal_connect(G_OBJECT(frame), "scrollbars-policy-changed",
|
|
||||||
G_CALLBACK(gtk_true), NULL);
|
|
||||||
|
|
||||||
if (!enablescrollbars) {
|
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(c->scroll),
|
|
||||||
GTK_POLICY_NEVER,
|
|
||||||
GTK_POLICY_NEVER);
|
|
||||||
} else {
|
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(c->scroll),
|
|
||||||
GTK_POLICY_AUTOMATIC,
|
|
||||||
GTK_POLICY_AUTOMATIC);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Arranging */
|
/* Arranging */
|
||||||
gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
|
gtk_container_add(GTK_CONTAINER(c->win), GTK_WIDGET(c->view));
|
||||||
gtk_container_add(GTK_CONTAINER(c->win), c->pane);
|
|
||||||
gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
|
|
||||||
|
|
||||||
/* Setup */
|
/* 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_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(GTK_WIDGET(c->view));
|
||||||
gtk_widget_show(c->win);
|
gtk_widget_show(c->win);
|
||||||
gwin = gtk_widget_get_window(GTK_WIDGET(c->win));
|
gwin = gtk_widget_get_window(GTK_WIDGET(c->win));
|
||||||
|
|
Loading…
Reference in a new issue