mirror of
https://github.com/yusufipk/dikte.git
synced 2026-09-11 19:06:11 +00:00
Allow wheel events on focused boxes when window is inactive
This commit is contained in:
@@ -207,7 +207,9 @@ class WheelGuard(QObject):
|
||||
"""
|
||||
|
||||
def eventFilter(self, box, event):
|
||||
if event.type() == QEvent.Type.Wheel and not box.hasFocus():
|
||||
win = box.window()
|
||||
focused = box.hasFocus() or (win is not None and win.focusWidget() is box)
|
||||
if event.type() == QEvent.Type.Wheel and not focused:
|
||||
# Refused rather than swallowed. An unaccepted wheel event carries
|
||||
# on up the parents to the scroll area, so the page still moves.
|
||||
event.ignore()
|
||||
|
||||
@@ -223,6 +223,17 @@ class Settings(DikteTest):
|
||||
QApplication.sendEvent(box, self.wheel())
|
||||
self.assertNotEqual(box.currentIndex(), before)
|
||||
|
||||
def test_the_wheel_is_refused_when_another_widget_has_focus(self):
|
||||
window = self.window(cfg.Config())
|
||||
box = window.ui_language
|
||||
other = window.corner
|
||||
other.setFocus()
|
||||
before = box.currentIndex()
|
||||
rolled = self.wheel()
|
||||
QApplication.sendEvent(box, rolled)
|
||||
self.assertEqual(box.currentIndex(), before)
|
||||
self.assertFalse(rolled.isAccepted())
|
||||
|
||||
def test_a_wrapped_label_keeps_the_room_its_lines_need(self):
|
||||
# The program path shares a row with a button, and a row is measured
|
||||
# before its width is known: the label has to claim the second line back
|
||||
|
||||
Reference in New Issue
Block a user