From 3eaad092b888751012ab3ef80505c0fa7100a842 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 6 Oct 2017 08:51:48 +0200 Subject: 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) --- CHANGELOG.asciidoc | 3 +++ 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) -- cgit v1.2.3-54-g00ecf