diff --git a/oec/keyboard.py b/oec/keyboard.py index e6f31c4..5a20012 100644 --- a/oec/keyboard.py +++ b/oec/keyboard.py @@ -50,8 +50,10 @@ class Key(Enum): DELETE = 265 LEFT = 266 + LEFT_2 = 410 UP = 267 RIGHT = 268 + RIGHT_2 = 411 DOWN = 269 ROLL_UP = 270 ROLL_DOWN = 271 diff --git a/oec/keymap_3278_2.py b/oec/keymap_3278_2.py index b18f2b1..16c2cd1 100644 --- a/oec/keymap_3278_2.py +++ b/oec/keymap_3278_2.py @@ -187,8 +187,8 @@ KEYMAP_ALT = { # Right 95: Key.PA1, 94: Key.PA2, - # 22 - Unsure what this key is - # 26 - Unsure what this key is + 22: Key.LEFT_2, + 26: Key.RIGHT_2 } MODIFIER_RELEASE_MAP = { diff --git a/oec/tn3270.py b/oec/tn3270.py index c6df0ab..d6f13bb 100644 --- a/oec/tn3270.py +++ b/oec/tn3270.py @@ -121,8 +121,12 @@ class TN3270Session(Session): self.emulator.cursor_down() elif key == Key.LEFT: self.emulator.cursor_left() + elif key == Key.LEFT_2: + self.emulator.cursor_left(rate=2) elif key == Key.RIGHT: self.emulator.cursor_right() + elif key == Key.RIGHT_2: + self.emulator.cursor_right(rate=2) elif key == Key.INSERT: self._handle_insert_key() elif key == Key.DELETE: diff --git a/tests/test_tn3270.py b/tests/test_tn3270.py index c286a03..66e91e6 100644 --- a/tests/test_tn3270.py +++ b/tests/test_tn3270.py @@ -169,6 +169,13 @@ class SessionHandleKeyTestCase(unittest.TestCase): # Assert self.session.emulator.cursor_left.assert_called() + def test_left_2(self): + # Act + self.session.handle_key(Key.LEFT_2, KeyboardModifiers.NONE, None) + + # Assert + self.session.emulator.cursor_left.assert_called_with(rate=2) + def test_right(self): # Act self.session.handle_key(Key.RIGHT, KeyboardModifiers.NONE, None) @@ -176,6 +183,13 @@ class SessionHandleKeyTestCase(unittest.TestCase): # Assert self.session.emulator.cursor_right.assert_called() + def test_right_2(self): + # Act + self.session.handle_key(Key.RIGHT_2, KeyboardModifiers.NONE, None) + + # Assert + self.session.emulator.cursor_right.assert_called_with(rate=2) + def test_delete(self): # Act self.session.handle_key(Key.DELETE, KeyboardModifiers.NONE, None)