parent
11e88fbd12
commit
47d5262cd9
@ -614,6 +614,8 @@ class CommandDispatcher:
|
|||||||
"expected one of: {}".format(
|
"expected one of: {}".format(
|
||||||
direction, ', '.join(fake_keys)))
|
direction, ', '.join(fake_keys)))
|
||||||
widget = self._current_widget()
|
widget = self._current_widget()
|
||||||
|
frame = widget.page().currentFrame()
|
||||||
|
|
||||||
press_evt = QKeyEvent(QEvent.KeyPress, key, Qt.NoModifier, 0, 0, 0)
|
press_evt = QKeyEvent(QEvent.KeyPress, key, Qt.NoModifier, 0, 0, 0)
|
||||||
release_evt = QKeyEvent(QEvent.KeyRelease, key, Qt.NoModifier, 0, 0, 0)
|
release_evt = QKeyEvent(QEvent.KeyRelease, key, Qt.NoModifier, 0, 0, 0)
|
||||||
|
|
||||||
@ -621,7 +623,25 @@ class CommandDispatcher:
|
|||||||
if direction in ('top', 'bottom'):
|
if direction in ('top', 'bottom'):
|
||||||
count = 1
|
count = 1
|
||||||
|
|
||||||
|
max_min = {
|
||||||
|
'up': [Qt.Vertical, frame.scrollBarMinimum],
|
||||||
|
'down': [Qt.Vertical, frame.scrollBarMaximum],
|
||||||
|
'left': [Qt.Horizontal, frame.scrollBarMinimum],
|
||||||
|
'right': [Qt.Horizontal, frame.scrollBarMaximum],
|
||||||
|
'page-up': [Qt.Vertical, frame.scrollBarMinimum],
|
||||||
|
'page-down': [Qt.Vertical, frame.scrollBarMaximum],
|
||||||
|
}
|
||||||
|
|
||||||
for _ in range(count):
|
for _ in range(count):
|
||||||
|
# Abort scrolling if the minimum/maximum was reached.
|
||||||
|
try:
|
||||||
|
qt_dir, getter = max_min[direction]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if frame.scrollBarValue(qt_dir) == getter(qt_dir):
|
||||||
|
return
|
||||||
|
|
||||||
widget.keyPressEvent(press_evt)
|
widget.keyPressEvent(press_evt)
|
||||||
widget.keyReleaseEvent(release_evt)
|
widget.keyReleaseEvent(release_evt)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user