From a404ee5e016c5e1f46cfdf0e0e92238865142dde Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 16 Mar 2023 11:26:08 +0000 Subject: [PATCH] add app to active message pump (#2071) * add app to active message pump * made sender private * changelog --- CHANGELOG.md | 5 +++++ src/textual/app.py | 4 +++- src/textual/driver.py | 1 + src/textual/message.py | 6 ------ 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6871215f7..26654e49e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Dropped "loading-indicator--dot" component style from LoadingIndicator https://github.com/Textualize/textual/pull/2050 +### Removed + +- Removed `sender` attribute from messages. It's now just private (`_sender`). https://github.com/Textualize/textual/pull/2071 + ### Fixed - Fixed borders not rendering correctly. https://github.com/Textualize/textual/pull/2074 + ### Changed - Breaking change: changed default behaviour of `Vertical` (see `VerticalScroll`) https://github.com/Textualize/textual/issues/1957 diff --git a/src/textual/app.py b/src/textual/app.py index 2c9f8f476..7d54e0651 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -53,7 +53,7 @@ from ._ansi_sequences import SYNC_END, SYNC_START from ._asyncio import create_task from ._callback import invoke from ._compose import compose -from ._context import active_app +from ._context import active_app, active_message_pump from ._event_broker import NoHandler, extract_handler_actions from ._path import _make_path_object_relative from ._wait import wait_for_idle @@ -918,6 +918,7 @@ class App(Generic[ReturnType], DOMNode): ) # Launch the app in the "background" + active_message_pump.set(app) app_task = create_task(run_app(app), name=f"run_test {app}") # Wait until the app has performed all startup routines. @@ -973,6 +974,7 @@ class App(Generic[ReturnType], DOMNode): raise pilot = Pilot(app) + active_message_pump.set(self) auto_pilot_task = create_task( run_auto_pilot(auto_pilot, pilot), name=repr(pilot) ) diff --git a/src/textual/driver.py b/src/textual/driver.py index 652b79f66..9be2a6289 100644 --- a/src/textual/driver.py +++ b/src/textual/driver.py @@ -42,6 +42,7 @@ class Driver(ABC): def process_event(self, event: events.Event) -> None: """Performs some additional processing of events.""" + event._set_sender(self._target) if isinstance(event, events.MouseDown): self._mouse_down_time = event.time if event.button: diff --git a/src/textual/message.py b/src/textual/message.py index 5d2ddb793..e4a16e827 100644 --- a/src/textual/message.py +++ b/src/textual/message.py @@ -64,12 +64,6 @@ class Message: if namespace is not None: cls.namespace = namespace - @property - def sender(self) -> MessageTarget: - """The sender of the message.""" - assert self._sender is not None - return self._sender - @property def is_forwarded(self) -> bool: return self._forwarded