Skip to content

Commit 1736cd1

Browse files
committed
better jank fix
1 parent 3779330 commit 1736cd1

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/textual/widgets/_footer.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,8 @@ async def bindings_changed(self, screen: Screen) -> None:
331331
self._bindings_ready = True
332332
if not screen.app.app_focus:
333333
return
334-
self.app.delay_update()
335334
if self.is_attached and screen is self.screen:
336-
await self.recompose()
335+
self.call_after_refresh(self.recompose)
337336

338337
def _on_mouse_scroll_down(self, event: events.MouseScrollDown) -> None:
339338
if self.allow_horizontal_scroll:

src/textual/widgets/_help_panel.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ class HelpPanel(Widget):
7979
DEFAULT_CLASSES = "-textual-system"
8080

8181
def on_mount(self):
82-
self.watch(self.screen, "focused", self.update_help)
82+
def update_help(focused_widget: Widget | None):
83+
self.update_help(focused_widget)
84+
85+
self.watch(self.screen, "focused", update_help)
8386

8487
def update_help(self, focused_widget: Widget | None) -> None:
8588
"""Update the help for the focused widget.

src/textual/widgets/_key_panel.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
from collections import defaultdict
4-
from functools import partial
54
from itertools import groupby
65
from operator import itemgetter
76
from typing import TYPE_CHECKING
@@ -164,16 +163,17 @@ def compose(self) -> ComposeResult:
164163
yield BindingsTable(shrink=True, expand=False)
165164

166165
async def on_mount(self) -> None:
166+
mount_screen = self.screen
167+
167168
async def bindings_changed(screen: Screen) -> None:
168169
"""Update bindings."""
169170
if not screen.app.app_focus:
170171
return
171-
if self.is_attached and screen is self.screen:
172-
self.refresh(recompose=True)
172+
if self.is_attached and screen is mount_screen:
173+
await self.recompose()
173174

174175
def _bindings_changed(screen: Screen) -> None:
175-
"""Update bindings after a short delay."""
176-
screen.set_timer(1 / 20, partial(bindings_changed, screen))
176+
self.call_after_refresh(bindings_changed, screen)
177177

178178
self.set_class(self.app.ansi_color, "-ansi-scrollbar")
179179
self.screen.bindings_updated_signal.subscribe(self, _bindings_changed)

0 commit comments

Comments
 (0)