Skip to content

Commit 47d0507

Browse files
authored
Merge pull request #6050 from Textualize/screen-focus-optimization
optimize screen composing
2 parents 924cc27 + 3b27d5a commit 47d0507

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

src/textual/dom.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1729,7 +1729,7 @@ def _update_styles(self) -> None:
17291729
17301730
Should be called whenever CSS classes / pseudo classes change.
17311731
"""
1732-
if not self.is_attached:
1732+
if not self.is_attached or not self.screen.is_mounted:
17331733
return
17341734
try:
17351735
self.app.update_styles(self)

src/textual/screen.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,6 +1354,10 @@ def _on_screen_resume(self) -> None:
13541354
self._refresh_layout(size)
13551355
self.refresh()
13561356

1357+
async def _compose(self) -> None:
1358+
await super()._compose()
1359+
self._update_auto_focus()
1360+
13571361
def _update_auto_focus(self) -> None:
13581362
"""Update auto focus."""
13591363
if self.app.app_focus:

src/textual/widgets/_text_area.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,12 +1782,14 @@ def _restart_blink(self) -> None:
17821782
"""Reset the cursor blink timer."""
17831783
if self.cursor_blink:
17841784
self._cursor_visible = True
1785-
self.blink_timer.reset()
1785+
if self.is_mounted:
1786+
self.blink_timer.reset()
17861787

17871788
def _pause_blink(self, visible: bool = True) -> None:
17881789
"""Pause the cursor blinking but ensure it stays visible."""
17891790
self._cursor_visible = visible
1790-
self.blink_timer.pause()
1791+
if self.is_mounted:
1792+
self.blink_timer.pause()
17911793

17921794
async def _on_mouse_down(self, event: events.MouseDown) -> None:
17931795
"""Update the cursor position, and begin a selection using the mouse."""

0 commit comments

Comments
 (0)