Skip to content

Commit 8f8986c

Browse files
committed
added root_view
1 parent 6eb1d42 commit 8f8986c

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

src/textual/view.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,6 @@ def __init__(self, layout: Layout = None, name: str | None = None) -> None:
3939
self.layout.widgets = self.widgets
4040
super().__init__(name)
4141

42-
@property
43-
def app(self) -> "App":
44-
return active_app.get()
45-
46-
@property
47-
def console(self) -> Console:
48-
return active_app.get().console
49-
5042
def __rich_console__(
5143
self, console: Console, options: ConsoleOptions
5244
) -> RenderResult:
@@ -72,11 +64,9 @@ def get_widget_at(
7264
return self.layout.get_widget_at(x, y)
7365

7466
async def message_update(self, message: UpdateMessage) -> None:
75-
log.debug("MESSAGE_UPDATE %r", message)
7667
widget = message.sender
7768
assert isinstance(widget, Widget)
78-
display_update = self.app.view.layout.update_widget(self.console, widget)
79-
log.debug("%r", display_update)
69+
display_update = self.root_view.layout.update_widget(self.console, widget)
8070
if display_update is not None:
8171
self.app.display(display_update)
8272

src/textual/widget.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
if TYPE_CHECKING:
3535
from .app import App
36+
from .view import View
3637

3738

3839
WidgetID = NewType("WidgetID", int)
@@ -152,6 +153,11 @@ def console(self) -> Console:
152153
"""Get the current console."""
153154
return active_app.get().console
154155

156+
@property
157+
def root_view(self) -> "View":
158+
"""Return the top-most view."""
159+
return active_app.get().view
160+
155161
@property
156162
def animate(self) -> BoundAnimator:
157163
if self._animate is None:
@@ -185,7 +191,7 @@ async def refresh(self) -> None:
185191

186192
async def repaint(self) -> None:
187193
"""Instructs parent to repaint this widget."""
188-
await self.app.view.post_message(UpdateMessage(self, self))
194+
await self.emit(UpdateMessage(self, self))
189195

190196
def render(self) -> RenderableType:
191197
"""Get renderable for widget.

0 commit comments

Comments
 (0)