Skip to content

Commit 91fd712

Browse files
committed
fix error exiting inline mode
1 parent 322a85c commit 91fd712

File tree

5 files changed

+11
-3
lines changed

5 files changed

+11
-3
lines changed

src/textual/drivers/linux_driver.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ def process_selector_events(
408408
try:
409409
while not self.exit_event.is_set():
410410
process_selector_events(selector.select(0.1))
411+
selector.unregister(self.fileno)
411412
process_selector_events(selector.select(0.1), final=True)
412413

413414
finally:

src/textual/drivers/linux_inline_driver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,11 @@ def process_selector_events(
161161
self.cursor_origin = (event.x, event.y)
162162
else:
163163
self.process_event(event)
164-
self.process_event(event)
165164

166165
try:
167166
while not self.exit_event.is_set():
168167
process_selector_events(selector.select(0.1))
168+
selector.unregister(self.fileno)
169169
process_selector_events(selector.select(0.1), final=True)
170170

171171
finally:
@@ -296,7 +296,10 @@ def disable_input(self) -> None:
296296
if self._key_thread is not None:
297297
self._key_thread.join()
298298
self.exit_event.clear()
299-
termios.tcflush(self.fileno, termios.TCIFLUSH)
299+
try:
300+
termios.tcflush(self.fileno, termios.TCIFLUSH)
301+
except termios.error:
302+
pass
300303

301304
except Exception as error:
302305
# TODO: log this
@@ -312,6 +315,7 @@ def stop_application_mode(self) -> None:
312315
self.disable_input()
313316
self.write("\x1b[<u") # Disable kitty protocol
314317
self.write("\x1b[J")
318+
self.flush()
315319

316320
if self.attrs_before is not None:
317321
try:

src/textual/screen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ def render(self) -> RenderableType:
451451
background = self.styles.background
452452
try:
453453
base_screen = visible_screen_stack.get().pop()
454-
except IndexError:
454+
except LookupError:
455455
base_screen = None
456456

457457
if base_screen is not None and background.a < 1:

src/textual/widgets/_directory_tree.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class DirectoryTree(Tree[DirEntry]):
3535
ICON_NODE_EXPANDED = "📂 "
3636
ICON_NODE = "📁 "
3737
ICON_FILE = "📄 "
38+
"""Unicode 'icon' to represent a file."""
3839

3940
COMPONENT_CLASSES: ClassVar[set[str]] = {
4041
"directory-tree--extension",

src/textual/widgets/_tree.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,9 @@ class Tree(Generic[TreeDataType], ScrollView, can_focus=True):
517517
"""A widget for displaying and navigating data in a tree."""
518518

519519
ICON_NODE = "▶ "
520+
"""Unicode 'icon' to use for an expandable node."""
520521
ICON_NODE_EXPANDED = "▼ "
522+
"""Unicode 'icon' to use for an expanded node."""
521523

522524
BINDINGS: ClassVar[list[BindingType]] = [
523525
Binding("shift+left", "cursor_parent", "Cursor to parent", show=False),

0 commit comments

Comments
 (0)