parent
455b90ecad
commit
fd8e5e30c6
@ -293,6 +293,7 @@ class WebEngineScroller(browsertab.AbstractScroller):
|
|||||||
|
|
||||||
def __init__(self, tab, parent=None):
|
def __init__(self, tab, parent=None):
|
||||||
super().__init__(tab, parent)
|
super().__init__(tab, parent)
|
||||||
|
self._args = objreg.get('args')
|
||||||
self._pos_perc = (0, 0)
|
self._pos_perc = (0, 0)
|
||||||
self._pos_px = QPoint()
|
self._pos_px = QPoint()
|
||||||
self._at_bottom = False
|
self._at_bottom = False
|
||||||
@ -333,8 +334,10 @@ class WebEngineScroller(browsertab.AbstractScroller):
|
|||||||
perc_y = min(100, round(100 / dy * jsret['px']['y']))
|
perc_y = min(100, round(100 / dy * jsret['px']['y']))
|
||||||
|
|
||||||
self._at_bottom = math.ceil(jsret['px']['y']) >= dy
|
self._at_bottom = math.ceil(jsret['px']['y']) >= dy
|
||||||
self._pos_perc = perc_x, perc_y
|
|
||||||
|
|
||||||
|
if (self._pos_perc != (perc_x, perc_y) or
|
||||||
|
'no-scroll-filtering' in self._args.debug_flags):
|
||||||
|
self._pos_perc = perc_x, perc_y
|
||||||
self.perc_changed.emit(*self._pos_perc)
|
self.perc_changed.emit(*self._pos_perc)
|
||||||
|
|
||||||
js_code = javascript.assemble('scroll', 'pos')
|
js_code = javascript.assemble('scroll', 'pos')
|
||||||
|
@ -159,7 +159,8 @@ def debug_flag_error(flag):
|
|||||||
debug-exit: Turn on debugging of late exit.
|
debug-exit: Turn on debugging of late exit.
|
||||||
pdb-postmortem: Drop into pdb on exceptions.
|
pdb-postmortem: Drop into pdb on exceptions.
|
||||||
"""
|
"""
|
||||||
valid_flags = ['debug-exit', 'pdb-postmortem', 'no-sql-history']
|
valid_flags = ['debug-exit', 'pdb-postmortem', 'no-sql-history',
|
||||||
|
'no-scroll-filtering']
|
||||||
|
|
||||||
if flag in valid_flags:
|
if flag in valid_flags:
|
||||||
return flag
|
return flag
|
||||||
|
@ -17,10 +17,19 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import pytest_bdd as bdd
|
import pytest_bdd as bdd
|
||||||
bdd.scenarios('marks.feature')
|
bdd.scenarios('marks.feature')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def turn_on_scroll_logging(quteproc):
|
||||||
|
"""Make sure all scrolling changes are logged."""
|
||||||
|
quteproc.send_cmd(":debug-pyeval -q objreg.get('args')."
|
||||||
|
"debug_flags.append('no-scroll-filtering')")
|
||||||
|
|
||||||
|
|
||||||
@bdd.then(bdd.parsers.parse("the page should be scrolled to {x} {y}"))
|
@bdd.then(bdd.parsers.parse("the page should be scrolled to {x} {y}"))
|
||||||
def check_y(request, quteproc, x, y):
|
def check_y(request, quteproc, x, y):
|
||||||
data = quteproc.get_session()
|
data = quteproc.get_session()
|
||||||
|
@ -17,5 +17,14 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import pytest_bdd as bdd
|
import pytest_bdd as bdd
|
||||||
bdd.scenarios('scroll.feature')
|
bdd.scenarios('scroll.feature')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def turn_on_scroll_logging(quteproc):
|
||||||
|
"""Make sure all scrolling changes are logged."""
|
||||||
|
quteproc.send_cmd(":debug-pyeval -q objreg.get('args')."
|
||||||
|
"debug_flags.append('no-scroll-filtering')")
|
||||||
|
Loading…
Reference in New Issue
Block a user