From c83a8a64dcb56e9b47aff4473a6e273b9ca7ca74 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 13 Jul 2016 11:26:53 +0200 Subject: [PATCH] QtWebEngine: Implement scroll.delta_page --- qutebrowser/browser/webengine/webenginetab.py | 6 +++++- qutebrowser/javascript/scroll.js | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 9476200de..147f7be0f 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -229,7 +229,11 @@ class WebEngineScroller(browsertab.AbstractScroller): self._tab.run_js_async("window.scrollBy({x}, {y});".format(x=x, y=y)) def delta_page(self, x=0, y=0): - log.stub() + js_code = """ + {scroll_js} + scroll_delta_page({x}, {y}); + """.format(scroll_js=utils.read_file('javascript/scroll.js'), x=x, y=y) + self._tab.run_js_async(js_code) def up(self, count=1): self._key_press(Qt.Key_Up, count) diff --git a/qutebrowser/javascript/scroll.js b/qutebrowser/javascript/scroll.js index 59dea1dac..77076d1bb 100644 --- a/qutebrowser/javascript/scroll.js +++ b/qutebrowser/javascript/scroll.js @@ -32,3 +32,9 @@ function scroll_to_perc(x, y) { window.scroll(x_px, y_px); } + +function scroll_delta_page(x, y) { + var dx = document.documentElement.clientWidth * x; + var dy = document.documentElement.clientHeight * y; + window.scrollBy(dx, dy); +}