diff --git a/src/fenrirscreenreader/inputDriver/x11Driver.py b/src/fenrirscreenreader/inputDriver/x11Driver.py index c0782e39..f0e35e2f 100644 --- a/src/fenrirscreenreader/inputDriver/x11Driver.py +++ b/src/fenrirscreenreader/inputDriver/x11Driver.py @@ -89,6 +89,8 @@ class driver(inputDriver): "Delete": "KEY_DELETE", "Home": "KEY_HOME", "End": "KEY_END", + "Prior": "KEY_PAGEUP", + "Next": "KEY_PAGEDOWN", "Page_Up": "KEY_PAGEUP", "Page_Down": "KEY_PAGEDOWN", "Up": "KEY_UP", @@ -405,14 +407,7 @@ class driver(inputDriver): return None def should_emit_key(self, key_name): - if key_name in self.modifier_key_names: - return True - if key_name in self.interesting_keys: - return True - input_manager = self.env["runtime"]["InputManager"] - curr_input = self.env["input"]["curr_input"] - normalized_curr = [input_manager.convert_event_name(key) for key in curr_input] - return "KEY_FENRIR" in normalized_curr or "KEY_SCRIPT" in normalized_curr + return key_name is not None def refresh_interesting_keys(self): input_manager = self.env["runtime"]["InputManager"] @@ -545,6 +540,8 @@ class driver(inputDriver): "KEY_LEFTMETA": ["Super_L", "Meta_L"], "KEY_RIGHTMETA": ["Super_R", "Meta_R"], "KEY_COMPOSE": ["Multi_key"], + "KEY_PAGEUP": ["Page_Up", "Prior"], + "KEY_PAGEDOWN": ["Page_Down", "Next"], "KEY_KP0": ["KP_0", "KP_Insert"], "KEY_KP1": ["KP_1", "KP_End"], "KEY_KP2": ["KP_2", "KP_Down"], diff --git a/tests/unit/test_x11_terminal_mode.py b/tests/unit/test_x11_terminal_mode.py index 4550cdba..10f5f245 100644 --- a/tests/unit/test_x11_terminal_mode.py +++ b/tests/unit/test_x11_terminal_mode.py @@ -59,6 +59,8 @@ def test_x11_key_name_mapping_for_keypad_and_capslock(): assert x11.keysym_name_to_key_name("Caps_Lock") == "KEY_CAPSLOCK" assert x11.keysym_name_to_key_name("Super_L") == "KEY_LEFTMETA" assert x11.keysym_name_to_key_name("Multi_key") == "KEY_COMPOSE" + assert x11.keysym_name_to_key_name("Next") == "KEY_PAGEDOWN" + assert x11.keysym_name_to_key_name("Prior") == "KEY_PAGEUP" assert x11.keysym_name_to_key_name("a") == "KEY_A" assert x11.keysym_name_to_key_name("F10") == "KEY_F10" @@ -130,6 +132,17 @@ def test_x11_key_name_to_keysym_names_includes_numlock_aliases(): assert "Super_L" in x11.key_name_to_keysym_names("KEY_META") assert "Meta_R" in x11.key_name_to_keysym_names("KEY_META") assert x11.key_name_to_keysym_names("KEY_COMPOSE") == ["Multi_key"] + assert "Next" in x11.key_name_to_keysym_names("KEY_PAGEDOWN") + assert "Prior" in x11.key_name_to_keysym_names("KEY_PAGEUP") + + +@pytest.mark.unit +def test_x11_should_emit_unbound_mapped_keys_for_speech_interrupt(): + x11 = X11Driver() + x11.interesting_keys = set() + + assert x11.should_emit_key("KEY_ESC") is True + assert x11.should_emit_key("KEY_ENTER") is True @pytest.mark.unit