From: Daniel Carl Date: Sat, 14 Jul 2018 22:12:44 +0000 (+0200) Subject: Get page size from body as well as the documentElement #501. X-Git-Url: https://git.owens.tech///git?a=commitdiff_plain;h=ad8923266ebb1f78feff15878345a03a53368add;p=vimb.git Get page size from body as well as the documentElement #501. --- diff --git a/src/webextension/ext-main.c b/src/webextension/ext-main.c index 29bb25d..835921c 100644 --- a/src/webextension/ext-main.c +++ b/src/webextension/ext-main.c @@ -253,21 +253,24 @@ static void on_document_scroll(WebKitDOMEventTarget *target, WebKitDOMEvent *eve return; } - scrollTop = webkit_dom_element_get_scroll_top(body); - if (scrollTop) { - clientHeight = webkit_dom_element_get_client_height(WEBKIT_DOM_ELEMENT(de)); - scrollHeight = webkit_dom_element_get_scroll_height(body); - - /* Get the maximum scrollable page size. This is the size of the whole - * document - height of the viewport. */ - max = scrollHeight - clientHeight ; - if (max) { - percent = (guint)(0.5 + (scrollTop * 100 / max)); - } + scrollTop = MAX(webkit_dom_element_get_scroll_top(de), + webkit_dom_element_get_scroll_top(body)); + + clientHeight = webkit_dom_dom_window_get_inner_height( + webkit_dom_document_get_default_view(doc)); + + scrollHeight = MAX(webkit_dom_element_get_scroll_height(de), + webkit_dom_element_get_scroll_height(body)); + + /* Get the maximum scrollable page size. This is the size of the whole + * document - height of the viewport. */ + max = scrollHeight - clientHeight; + if (max > 0) { + percent = (guint)(0.5 + (scrollTop * 100 / max)); } dbus_emit_signal("VerticalScroll", g_variant_new("(ttq)", - webkit_web_page_get_id(page), max, percent)); + webkit_web_page_get_id(page), max, percent)); } }