|
107 | 107 | RenderResult = RenderableType |
108 | 108 |
|
109 | 109 |
|
110 | | -# AutopilotCallbackType: TypeAlias = "Callable[[Pilot], Awaitable[None]]" |
111 | 110 | AutopilotCallbackType: TypeAlias = "Callable[[Pilot], Coroutine[Any, Any, None]]" |
112 | 111 |
|
113 | 112 |
|
@@ -1117,7 +1116,7 @@ async def _process_messages( |
1117 | 1116 | self.log.system("[b green]STARTED[/]", self.css_monitor) |
1118 | 1117 |
|
1119 | 1118 | async def run_process_messages(): |
1120 | | - """The main message look, invoke below.""" |
| 1119 | + """The main message loop, invoke below.""" |
1121 | 1120 | try: |
1122 | 1121 | await self._dispatch_message(events.Compose(sender=self)) |
1123 | 1122 | await self._dispatch_message(events.Mount(sender=self)) |
@@ -1186,11 +1185,6 @@ async def run_process_messages(): |
1186 | 1185 | driver.stop_application_mode() |
1187 | 1186 | except Exception as error: |
1188 | 1187 | self._handle_exception(error) |
1189 | | - # finally: |
1190 | | - # self._running = False |
1191 | | - # self._print_error_renderables() |
1192 | | - # if self.devtools is not None and self.devtools.is_connected: |
1193 | | - # await self._disconnect_devtools() |
1194 | 1188 |
|
1195 | 1189 | async def _pre_process(self) -> None: |
1196 | 1190 | pass |
@@ -1320,7 +1314,10 @@ async def _close_all(self) -> None: |
1320 | 1314 |
|
1321 | 1315 | # Close all screens on the stack |
1322 | 1316 | for screen in self._screen_stack: |
1323 | | - await self._prune_node(screen) |
| 1317 | + if screen._running: |
| 1318 | + await self._prune_node(screen) |
| 1319 | + |
| 1320 | + self._screen_stack.clear() |
1324 | 1321 |
|
1325 | 1322 | # Close pre-defined screens |
1326 | 1323 | for screen in self.SCREENS.values(): |
|
0 commit comments