Skip to content

Commit 22f1c42

Browse files
committed
fix web driver
1 parent a936be8 commit 22f1c42

File tree

3 files changed

+20
-19
lines changed

3 files changed

+20
-19
lines changed

src/textual/_xterm_parser.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,14 @@ def reissue_sequence_as_keys(reissue_sequence: str) -> None:
134134
Args:
135135
reissue_sequence: Key sequence to report to the app.
136136
"""
137-
self.debug_log("REISSUE", repr(reissue_sequence))
138-
for character in reissue_sequence:
139-
key_events = sequence_to_key_events(character)
140-
for event in key_events:
141-
if event.key == "escape":
142-
event = events.Key("circumflex_accent", "^")
143-
on_token(event)
137+
if reissue_sequence:
138+
self.debug_log("REISSUE", repr(reissue_sequence))
139+
for character in reissue_sequence:
140+
key_events = sequence_to_key_events(character)
141+
for event in key_events:
142+
if event.key == "escape":
143+
event = events.Key("circumflex_accent", "^")
144+
on_token(event)
144145

145146
while not self.is_eof:
146147
if not bracketed_paste and paste_buffer:

src/textual/drivers/_input_reader_linux.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,4 @@ def __iter__(self) -> Iterator[bytes]:
3737
if not data:
3838
return
3939
yield data
40+
yield b""

src/textual/drivers/web_driver.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,6 @@ def do_exit() -> None:
152152

153153
self.write("\x1b[?25l") # Hide cursor
154154
self.write("\033[?1003h")
155-
self.write("\x1b[?1004h") # Enable FocusIn/FocusOut.
156-
self.write("\x1b[>1u") # https://sw.kovidgoyal.net/kitty/keyboard-protocol/
157-
# Disambiguate escape codes https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement
158-
self.write("\x1b[=1;u")
159155

160156
size = Size(80, 24) if self._size is None else Size(*self._size)
161157
event = events.Resize(size, size)
@@ -190,14 +186,17 @@ def run_input_thread(self) -> None:
190186
byte_stream = ByteStream()
191187
try:
192188
for data in input_reader:
193-
for packet_type, payload in byte_stream.feed(data):
194-
if packet_type == "D":
195-
# Treat as stdin
196-
for event in parser.feed(decode(payload)):
197-
self.process_event(event)
198-
else:
199-
# Process meta information separately
200-
self._on_meta(packet_type, payload)
189+
if data:
190+
for packet_type, payload in byte_stream.feed(data):
191+
if packet_type == "D":
192+
# Treat as stdin
193+
for event in parser.feed(decode(payload)):
194+
self.process_event(event)
195+
else:
196+
# Process meta information separately
197+
self._on_meta(packet_type, payload)
198+
for event in parser.tick():
199+
self.process_event(event)
201200
except _ExitInput:
202201
pass
203202
except Exception:

0 commit comments

Comments
 (0)