diff options
author | Florian Bruhin <git@the-compiler.org> | 2017-10-06 08:51:48 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2017-10-06 08:54:52 +0200 |
commit | 3eaad092b888751012ab3ef80505c0fa7100a842 (patch) | |
tree | 2007c1c60a4baf55b8f6b3dee6ea93963ad228ee | |
parent | 38bccd4fdd05e3fbf38e5a70c17db270b55dc0d4 (diff) | |
download | qutebrowser-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.asciidoc | 3 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 5 |
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) |