Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/textual/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4302,9 +4302,9 @@ def action_show_help_panel(self) -> None:
from textual.widgets import HelpPanel

try:
self.query_one(HelpPanel)
self.screen.query_one(HelpPanel)
except NoMatches:
self.mount(HelpPanel())
self.screen.mount(HelpPanel())

def action_notify(
self, message: str, title: str = "", severity: str = "information"
Expand Down
13 changes: 8 additions & 5 deletions src/textual/demo/game.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,17 +539,20 @@ class GameScreen(PageScreen):

DEFAULT_CSS = """
GameScreen{
align: center middle;
layers: instructions game;
#container {
align: center middle;
layers: instructions game;
}
}
"""

BINDINGS = [("n", "new_game", "New Game")]

def compose(self) -> ComposeResult:
yield GameInstructions()
yield Game("\n" * 100, "", dimensions=(4, 4), tile_size=(16, 8))
yield Footer()
with containers.Vertical(id="container"):
yield GameInstructions()
yield Game("\n" * 100, "", dimensions=(4, 4), tile_size=(16, 8))
yield Footer()

def action_shuffle(self) -> None:
self.query_one(Game).shuffle()
Expand Down
8 changes: 7 additions & 1 deletion src/textual/widgets/_key_panel.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations

from collections import defaultdict
from functools import partial
from itertools import groupby
from operator import itemgetter
from typing import TYPE_CHECKING
Expand Down Expand Up @@ -164,13 +165,18 @@ def compose(self) -> ComposeResult:

async def on_mount(self) -> None:
async def bindings_changed(screen: Screen) -> None:
"""Update bindings."""
if not screen.app.app_focus:
return
if self.is_attached and screen is self.screen:
self.refresh(recompose=True)

def _bindings_changed(screen: Screen) -> None:
"""Update bindings after a short delay."""
screen.set_timer(1 / 20, partial(bindings_changed, screen))

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

def on_unmount(self) -> None:
self.screen.bindings_updated_signal.unsubscribe(self)
4 changes: 2 additions & 2 deletions src/textual/widgets/_link.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ class Link(Static, can_focus=True):
width: auto;
height: auto;
min-height: 1;
color: $accent;
color: $text-accent;
text-style: underline;
&:hover { color: $accent-lighten-1; }
&:hover { color: $accent; }
&:focus { text-style: bold reverse; }
}
"""
Expand Down
Loading