From dc02b22d7c8ff21c3eca2d2dd5f40fb8b1d97c96 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 31 Jan 2023 11:12:47 +0100 Subject: [PATCH 1/3] Fix paste and test --- src/textual/app.py | 4 +++- tests/test_paste.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/test_paste.py diff --git a/src/textual/app.py b/src/textual/app.py index 46ac67903..6abf74839 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -1901,9 +1901,11 @@ class App(Generic[ReturnType], DOMNode): else: await self.screen._forward_event(event) - elif isinstance(event, events.Paste): + elif isinstance(event, events.Paste) and not event.is_forwarded: if self.focused is not None: await self.focused._forward_event(event) + else: + await self.screen._forward_event(event) else: await super().on_event(event) diff --git a/tests/test_paste.py b/tests/test_paste.py new file mode 100644 index 000000000..58c5da41d --- /dev/null +++ b/tests/test_paste.py @@ -0,0 +1,18 @@ +from textual.app import App +from textual import events + + +async def test_paste_app(): + paste_events = [] + + class PasteApp(App): + def on_paste(self, event): + paste_events.append(event) + + app = PasteApp() + async with app.run_test() as pilot: + await app.post_message(events.Paste(sender=app, text="Hello")) + await pilot.pause(0) + + assert len(paste_events) == 1 + assert paste_events[0].text == "Hello" From 6e7fd08890fc9a78fc2690a796c046539b3b46f1 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 31 Jan 2023 11:14:23 +0100 Subject: [PATCH 2/3] change log [skip ci] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0bf73d17..c3e3694a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Fixed double-paste into `Input` https://github.com/Textualize/textual/issues/1657 - Added a workaround for an apparent Windows Terminal paste issue https://github.com/Textualize/textual/issues/1661 - Fixes issue with renderable width calculation https://github.com/Textualize/textual/issues/1685 +- Fixed issue with app not processing Paste event https://github.com/Textualize/textual/issues/1666 ## [0.10.1] - 2023-01-20 From 2ec01916d0670419e58a6ae55bd9b235daf448ff Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 31 Jan 2023 11:16:48 +0100 Subject: [PATCH 3/3] unused import --- src/textual/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/textual/events.py b/src/textual/events.py index d2f7dfe49..9914c03d5 100644 --- a/src/textual/events.py +++ b/src/textual/events.py @@ -7,7 +7,7 @@ from rich.style import Style from ._types import MessageTarget from .geometry import Offset, Size -from .keys import _get_key_aliases, _get_key_display +from .keys import _get_key_aliases from .message import Message MouseEventT = TypeVar("MouseEventT", bound="MouseEvent")