From ad8923266ebb1f78feff15878345a03a53368add Mon Sep 17 00:00:00 2001
From: Daniel Carl <danielcarl@gmx.de>
Date: Sun, 15 Jul 2018 00:12:44 +0200
Subject: [PATCH] Get page size from body as well as the documentElement #501.

---
 src/webextension/ext-main.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

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));
     }
 }
 
-- 
2.20.1