Skip to content

Commit 2e2d5d5

Browse files
committed
fix stack error
1 parent 6fd1797 commit 2e2d5d5

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed

src/textual/app.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,6 +1565,14 @@ def size(self) -> Size:
15651565
width, height = self.console.size
15661566
return Size(width, height)
15671567

1568+
@property
1569+
def viewport_size(self) -> Size:
1570+
"""Get the viewport size (size of the screen)."""
1571+
try:
1572+
return self.screen.size
1573+
except (ScreenStackError, NoScreen):
1574+
return self.size
1575+
15681576
def _get_inline_height(self) -> int:
15691577
"""Get the inline height (height when in inline mode).
15701578

src/textual/layouts/grid.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def arrange(
6060
table_size_columns -= 1
6161

6262
table_size_rows = styles.grid_size_rows
63-
viewport = parent.screen.size
63+
viewport = parent.app.viewport_size
6464
keyline_style, _keyline_color = styles.keyline
6565
offset = (0, 0)
6666
gutter_spacing: Spacing | None

src/textual/layouts/horizontal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def arrange(
2525
parent.pre_layout(self)
2626
placements: list[WidgetPlacement] = []
2727
add_placement = placements.append
28-
viewport = parent.screen.size
28+
viewport = parent.app.viewport_size
2929

3030
child_styles = [child.styles for child in children]
3131
box_margins: list[Spacing] = [

src/textual/layouts/stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def arrange(
3737
parent.pre_layout(self)
3838
if not children:
3939
return []
40-
viewport = parent.screen.size
40+
viewport = parent.app.viewport_size
4141

4242
_Region = Region
4343
_WidgetPlacement = WidgetPlacement

src/textual/layouts/vertical.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def arrange(
2323
parent.pre_layout(self)
2424
placements: list[WidgetPlacement] = []
2525
add_placement = placements.append
26-
viewport = parent.screen.size
26+
viewport = parent.app.viewport_size
2727

2828
child_styles = [child.styles for child in children]
2929
box_margins: list[Spacing] = [

0 commit comments

Comments
 (0)