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 |