Introduction
Introduction Statistics Contact Development Disclaimer Help
text: get the right DOM on msg - surf - customized build of surf, the suckless …
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit 660413256f4c1cc916e6f96b9156a4f5a85dfcc4
parent 1901359efa10fe2e18794df34fc33b81da03a6f5
Author: Quentin Rameau <[email protected]>
Date: Mon, 12 Jun 2017 18:19:58 +0200
ext: get the right DOM on msg
When navigating history, the document-loaded signal isn't triggered and
we can't directly get back the previous webview, so we have no other
choice than to look it up everytime a new message is received.
Diffstat:
M libsurf-webext.c | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
---
diff --git a/libsurf-webext.c b/libsurf-webext.c
t@@ -15,7 +15,6 @@
typedef struct Page {
guint64 id;
WebKitWebPage *webpage;
- WebKitDOMDOMWindow *view;
struct Page *next;
} Page;
t@@ -63,6 +62,7 @@ readpipe(GIOChannel *s, GIOCondition c, gpointer unused)
{
char msg[MSGBUFSZ];
gsize msgsz;
+ WebKitDOMDOMWindow *view;
GError *gerr = NULL;
glong wh, ww;
Page *p;
t@@ -80,18 +80,19 @@ readpipe(GIOChannel *s, GIOCondition c, gpointer unused)
if (p->id == msg[0])
break;
}
- if (!p || !p->view)
+ if (!p || !(view = webkit_dom_document_get_default_view(
+ webkit_web_page_get_dom_document(p->webpage))))
return TRUE;
switch (msg[1]) {
case 'h':
- ww = webkit_dom_dom_window_get_inner_width(p->view);
- webkit_dom_dom_window_scroll_by(p->view,
+ ww = webkit_dom_dom_window_get_inner_width(view);
+ webkit_dom_dom_window_scroll_by(view,
(ww / 100) * msg[2], 0);
break;
case 'v':
- wh = webkit_dom_dom_window_get_inner_height(p->view);
- webkit_dom_dom_window_scroll_by(p->view,
+ wh = webkit_dom_dom_window_get_inner_height(view);
+ webkit_dom_dom_window_scroll_by(view,
0, (wh / 100) * msg[2]);
break;
}
t@@ -100,18 +101,9 @@ readpipe(GIOChannel *s, GIOCondition c, gpointer unused)
}
static void
-documentloaded(WebKitWebPage *wp, Page *p)
-{
- p->view = webkit_dom_document_get_default_view(
- webkit_web_page_get_dom_document(wp));
-}
-
-static void
webpagecreated(WebKitWebExtension *e, WebKitWebPage *wp, gpointer unused)
{
Page *p = newpage(wp);
-
- g_signal_connect(wp, "document-loaded", G_CALLBACK(documentloaded), p);
}
G_MODULE_EXPORT void
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.