Scroll to center when tab is clicked.

Related comment: https://github.com/Textualize/textual/issues/2256#issuecomment-1505551728
This commit is contained in:
Rodrigo Girão Serrão
2023-04-12 22:25:33 +01:00
parent c249548c43
commit 663b09736e
3 changed files with 6 additions and 5 deletions

View File

@@ -2475,6 +2475,7 @@ class Widget(DOMNode):
def scroll_to_center(
self,
widget: Widget,
animate: bool = True,
*,
speed: float | None = None,
@@ -2493,8 +2494,8 @@ class Widget(DOMNode):
"""
self.call_after_refresh(
self.screen._scroll_to_center_of,
widget=self,
self._scroll_to_center_of,
widget=widget,
animate=animate,
speed=speed,
duration=duration,

View File

@@ -449,7 +449,7 @@ class Tabs(Widget, can_focus=True):
self.query("#tabs-list Tab.-active").remove_class("-active")
tab.add_class("-active")
self.active = tab.id or ""
self.query_one("#tabs-scroll").scroll_to_widget(tab, force=True)
self.query_one("#tabs-scroll").scroll_to_center(tab, force=True)
def _on_underline_clicked(self, event: Underline.Clicked) -> None:
"""The underline was clicked.
@@ -471,7 +471,7 @@ class Tabs(Widget, can_focus=True):
"""Scroll the active tab into view."""
if self.active_tab:
try:
self.query_one("#tabs-scroll").scroll_to_widget(
self.query_one("#tabs-scroll").scroll_to_center(
self.active_tab, force=True
)
except NoMatches:

View File

@@ -33,7 +33,7 @@ class MyApp(App[None]):
yield Label(("SPAM\n" * 59)[:-1])
def key_s(self) -> None:
self.query_one("#bullseye").scroll_to_center()
self.screen.scroll_to_center(self.query_one("#bullseye"))
if __name__ == "__main__":