Ensure reflow reflows non-visible widgets, fix scroll_to_center issue (#2684)

This commit is contained in:
darrenburns
2023-05-29 18:23:49 +01:00
committed by GitHub
parent 6cb052a7f2
commit a40300a6f5
5 changed files with 81 additions and 79 deletions

View File

@@ -5,32 +5,33 @@ from textual.widgets import Label
class MyApp(App[None]):
CSS = """
VerticalScroll, HorizontalScroll {
VerticalScroll {
border: round $primary;
}
#vertical {
height: 21;
}
HorizontalScroll {
border: round $secondary;
height: auto;
}
Label {
height: auto;
width: auto;
}
"""
def compose(self) -> ComposeResult:
with VerticalScroll():
yield Label(("SPAM\n" * 205)[:-1])
with VerticalScroll():
yield Label(("SPAM\n" * 53)[:-1])
with VerticalScroll(id="vertical"):
yield Label(("SPAM\n" * 78)[:-1])
with HorizontalScroll():
yield Label(("v\n" * 17)[:-1])
yield Label("@" * 302)
yield Label("[red]>>bullseye<<[/red]", id="bullseye")
yield Label("@" * 99)
yield Label(("SPAM\n" * 49)[:-1])
yield Label(("SPAM\n" * 51)[:-1])
yield Label(("SPAM\n" * 59)[:-1])
yield Label(("SPAM\n" * 53)[:-1])
with VerticalScroll(id="vertical"):
yield Label(("SPAM\n" * 78)[:-1])
with HorizontalScroll():
yield Label(("v\n" * 17)[:-1])
yield Label("@" * 302)
yield Label("[red]>>bullseye<<[/red]", id="bullseye")
yield Label("@" * 99)
yield Label(("SPAM\n" * 49)[:-1])
yield Label(("SPAM\n" * 51)[:-1])
def key_s(self) -> None:
self.screen.scroll_to_center(self.query_one("#bullseye"))