Fixed keyboard handling regression.
This commit is contained in:
@@ -217,6 +217,47 @@ def test_x11_build_passive_grabs_for_fenrir_keys_and_shortcuts():
|
||||
assert ("KEY_BACKSPACE", X.Mod4Mask, True) in grabs
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@pytest.mark.parametrize(
|
||||
"modifier_mask",
|
||||
[X.ControlMask, X.ShiftMask, X.Mod1Mask],
|
||||
)
|
||||
def test_x11_poll_modifier_interrupt_keys_interrupts_without_input_events(
|
||||
modifier_mask,
|
||||
):
|
||||
x11 = X11Driver()
|
||||
x11.active = True
|
||||
x11.modifier_interrupt_state = 0
|
||||
x11.modifier_state = 0
|
||||
x11.root = Mock()
|
||||
x11.root.query_pointer.return_value = Mock(mask=modifier_mask)
|
||||
settings_manager = Mock()
|
||||
settings_manager.get_setting_as_bool.return_value = True
|
||||
settings_manager.get_setting.return_value = ""
|
||||
output_manager = Mock()
|
||||
x11.env = {
|
||||
"input": {"event_buffer": []},
|
||||
"runtime": {
|
||||
"SettingsManager": settings_manager,
|
||||
"OutputManager": output_manager,
|
||||
"DebugManager": Mock(),
|
||||
},
|
||||
}
|
||||
|
||||
x11.poll_modifier_interrupt_keys()
|
||||
|
||||
output_manager.interrupt_output_async.assert_called_once()
|
||||
assert x11.env["input"]["event_buffer"] == []
|
||||
|
||||
output_manager.interrupt_output_async.reset_mock()
|
||||
x11.root.query_pointer.return_value = Mock(mask=0)
|
||||
|
||||
x11.poll_modifier_interrupt_keys()
|
||||
|
||||
output_manager.interrupt_output_async.assert_not_called()
|
||||
assert x11.env["input"]["event_buffer"] == []
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_x11_optional_modifier_masks_can_exclude_numlock():
|
||||
x11 = X11Driver()
|
||||
|
||||
Reference in New Issue
Block a user