Address review comments.

This commit is contained in:
Rodrigo Girão Serrão
2023-05-18 15:07:52 +01:00
parent a058fe53eb
commit d65daf81c0

View File

@@ -1454,10 +1454,9 @@ class App(Generic[ReturnType], DOMNode):
return return
stack = self._screen_stacks[mode] stack = self._screen_stacks[mode]
for screen in reversed(stack):
if screen._running:
self.call_later(self._prune_node, screen)
del self._screen_stacks[mode] del self._screen_stacks[mode]
for screen in reversed(stack):
self._replace_screen(screen)
def is_screen_installed(self, screen: Screen | str) -> bool: def is_screen_installed(self, screen: Screen | str) -> bool:
"""Check if a given screen has been installed. """Check if a given screen has been installed.
@@ -1535,9 +1534,8 @@ class App(Generic[ReturnType], DOMNode):
self.screen.refresh() self.screen.refresh()
screen.post_message(events.ScreenSuspend()) screen.post_message(events.ScreenSuspend())
self.log.system(f"{screen} SUSPENDED") self.log.system(f"{screen} SUSPENDED")
if ( if not self.is_screen_installed(screen) and all(
not self.is_screen_installed(screen) screen not in stack for stack in self._screen_stacks.values()
and screen not in self._screen_stacks[self._current_mode]
): ):
screen.remove() screen.remove()
self.log.system(f"{screen} REMOVED") self.log.system(f"{screen} REMOVED")