summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-10-06 08:51:48 +0200
committerFlorian Bruhin <git@the-compiler.org>2017-10-06 08:54:52 +0200
commit3eaad092b888751012ab3ef80505c0fa7100a842 (patch)
tree2007c1c60a4baf55b8f6b3dee6ea93963ad228ee
parent38bccd4fdd05e3fbf38e5a70c17db270b55dc0d4 (diff)
downloadqutebrowser-3eaad092b888751012ab3ef80505c0fa7100a842.tar.gz
qutebrowser-3eaad092b888751012ab3ef80505c0fa7100a842.zip
Only emit perc_changed signal when the percentage actually changed
QtWebEngine emits scrollPositionChanged a lot during smooth scrolling, and there's no reason we need to update percentages when they didn't *actually* change. This reduces the updates with a single spacebar press from 6-7 to 2-3 on my machine, which might not be enough though. See #2233 (cherry picked from commit 1d50c2c39af217eb12de1746b28dc2a495f92741)
-rw-r--r--CHANGELOG.asciidoc3
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py5
2 files changed, 6 insertions, 2 deletions
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 06e2b25a7..89d1811b2 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,9 @@ Fixes
- Fixed printing on macOS.
- Closing a pinned tab via mouse now also prompts for confirmation.
- The "try again" button on error pages works correctly again.
+- :spawn -u -d is now disallowed.
+- :spawn -d shows error messages correctly now.
+- Performance improvements for smooth scrolling
v0.11.0
-------
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index e4b5eba09..75a9dbcd3 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -345,9 +345,10 @@ class WebEngineScroller(browsertab.AbstractScroller):
perc_y = min(100, round(100 / dy * jsret['px']['y']))
self._at_bottom = math.ceil(jsret['px']['y']) >= dy
- self._pos_perc = perc_x, perc_y
- self.perc_changed.emit(*self._pos_perc)
+ if self._pos_perc != (perc_x, perc_y):
+ self._pos_perc = perc_x, perc_y
+ self.perc_changed.emit(*self._pos_perc)
js_code = javascript.assemble('scroll', 'pos')
self._tab.run_js_async(js_code, update_pos_cb)