comments, made update_timer private

This commit is contained in:
Will McGugan
2023-04-10 17:10:04 +01:00
parent 4f7b2d00bc
commit 3d642e1c71

View File

@@ -37,7 +37,7 @@ UPDATE_PERIOD: Final[float] = 1 / 120
@rich.repr.auto
class Screen(Widget):
"""A widget for the root of the app."""
"""The base class for screens."""
DEFAULT_CSS = """
Screen {
@@ -48,7 +48,7 @@ class Screen(Widget):
"""
focused: Reactive[Widget | None] = Reactive(None)
"""The focused widget or `None` for no focus."""
"""The focused [widget][textual.widget.Widget] or `None` for no focus."""
stack_updates: Reactive[int] = Reactive(0, repaint=False)
"""An integer that updates when the screen is resumed."""
@@ -63,11 +63,19 @@ class Screen(Widget):
id: str | None = None,
classes: str | None = None,
) -> None:
"""
Initialize the screen.
Args:
name: The name of the screen.
id: The ID of the screen in the DOM.
classes: The CSS classes for the screen.
"""
self._modal = False
super().__init__(name=name, id=id, classes=classes)
self._compositor = Compositor()
self._dirty_widgets: set[Widget] = set()
self._update_timer: Timer | None = None
self.__update_timer: Timer | None = None
self._callbacks: list[CallbackType] = []
@property
@@ -90,13 +98,13 @@ class Screen(Widget):
return False
@property
def update_timer(self) -> Timer:
def _update_timer(self) -> Timer:
"""Timer used to perform updates."""
if self._update_timer is None:
self._update_timer = self.set_interval(
if self.__update_timer is None:
self.__update_timer = self.set_interval(
UPDATE_PERIOD, self._on_timer_update, name="screen_update", pause=True
)
return self._update_timer
return self.__update_timer
def render(self) -> RenderableType:
background = self.styles.background
@@ -394,7 +402,7 @@ class Screen(Widget):
self._repaint_required = False
if self._dirty_widgets:
self.update_timer.resume()
self._update_timer.resume()
# The Screen is idle - a good opportunity to invoke the scheduled callbacks
await self._invoke_and_clear_callbacks()
@@ -412,7 +420,7 @@ class Screen(Widget):
if self._callbacks:
self.post_message(events.InvokeCallbacks())
self.update_timer.pause()
self._update_timer.pause()
async def _on_invoke_callbacks(self, event: events.InvokeCallbacks) -> None:
"""Handle PostScreenUpdate events, which are sent after the screen is updated"""
@@ -449,7 +457,7 @@ class Screen(Widget):
if not size:
return
self._compositor.update_widgets(self._dirty_widgets)
self.update_timer.pause()
self._update_timer.pause()
ResizeEvent = events.Resize
try: