Vmenu fixed I think. Hopefully last thing before new version.
This commit is contained in:
@@ -343,7 +343,7 @@ class driver(screenDriver):
|
|||||||
if not self.is_vmenu_active():
|
if not self.is_vmenu_active():
|
||||||
return False
|
return False
|
||||||
key_name = self.vmenu_stdin_key_name(msg_bytes)
|
key_name = self.vmenu_stdin_key_name(msg_bytes)
|
||||||
if key_name:
|
if key_name and not self.vmenu_key_already_handled(key_name):
|
||||||
self.queue_keypress(key_name, event_queue)
|
self.queue_keypress(key_name, event_queue)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -375,6 +375,12 @@ class driver(screenDriver):
|
|||||||
return "KEY_" + char.upper()
|
return "KEY_" + char.upper()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def vmenu_key_already_handled(self, key_name):
|
||||||
|
try:
|
||||||
|
return key_name in self.env["input"]["curr_input"]
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
def queue_keypress(self, key_name, event_queue):
|
def queue_keypress(self, key_name, event_queue):
|
||||||
event_time = time.time()
|
event_time = time.time()
|
||||||
for event_state in [1, 0]:
|
for event_state in [1, 0]:
|
||||||
|
|||||||
@@ -226,6 +226,24 @@ def test_pty_vmenu_unknown_stdin_is_consumed_without_injection():
|
|||||||
event_queue.put.assert_not_called()
|
event_queue.put.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.unit
|
||||||
|
def test_pty_vmenu_stdin_does_not_duplicate_current_x11_key():
|
||||||
|
pty_driver = PtyDriver()
|
||||||
|
event_queue = Mock()
|
||||||
|
pty_driver.env = {
|
||||||
|
"input": {"curr_input": ["KEY_RIGHT"]},
|
||||||
|
"runtime": {
|
||||||
|
"VmenuManager": Mock(get_active=Mock(return_value=True)),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
pty_driver.inject_text_to_screen = Mock()
|
||||||
|
|
||||||
|
pty_driver.handle_stdin_input(b"\x1b[C", event_queue)
|
||||||
|
|
||||||
|
pty_driver.inject_text_to_screen.assert_not_called()
|
||||||
|
event_queue.put.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.unit
|
@pytest.mark.unit
|
||||||
def test_pty_stdin_input_honors_interrupt_disabled():
|
def test_pty_stdin_input_honors_interrupt_disabled():
|
||||||
pty_driver = PtyDriver()
|
pty_driver = PtyDriver()
|
||||||
|
|||||||
Reference in New Issue
Block a user