This commit is contained in:
Will McGugan
2021-08-19 15:23:29 +01:00
parent de4bfb7e16
commit c0ca5e44b5
3 changed files with 6 additions and 15 deletions

View File

@@ -172,11 +172,6 @@ class LinuxDriver(Driver):
pass # TODO: log
def _run_input_thread(self, loop) -> None:
def send_event(event: events.Event) -> None:
asyncio.run_coroutine_threadsafe(
self._target.post_message(event),
loop=loop,
)
selector = selectors.DefaultSelector()
selector.register(self.fileno, selectors.EVENT_READ)

View File

@@ -184,11 +184,6 @@ class App(MessagePump):
self._view_stack.append(view)
return view
# def on_keyboard_interupt(self) -> None:
# loop = asyncio.get_event_loop()
# event = events.ShutdownRequest(sender=self)
# asyncio.run_coroutine_threadsafe(self.post_message(event), loop=loop)
async def set_focus(self, widget: Widget | None) -> None:
log("set_focus", widget)
if widget == self.focused:
@@ -361,17 +356,17 @@ class App(MessagePump):
return True
async def on_event(self, event: events.Event) -> None:
# if isinstance(event, events.Key):
# if await self.press(event.key):
# return
# await super().on_event(event)
# self.log("App.on_event", event, self.view)
# Handle input events that haven't been forwarded
# If the event has been forwaded it may have bubbled up back to the App
if isinstance(event, events.InputEvent) and not event.is_forwarded:
if isinstance(event, events.MouseEvent):
# Record current mouse position on App
self.mouse_position = Offset(event.x, event.y)
if isinstance(event, events.Key) and self.focused is not None:
# Key events are sent direct to focused widget
await self.focused.forward_event(event)
else:
# Forward the event to the view
await self.view.forward_event(event)
else:
await super().on_event(event)

View File

@@ -63,6 +63,7 @@ class Message:
return self._forwarded
def set_forwarded(self) -> None:
"""Mark this event as being forwarded."""
self._forwarded = True
def can_replace(self, message: "Message") -> bool: