diff --git a/CHANGELOG.md b/CHANGELOG.md
index 10de68990..3aec5a144 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Issue with parsing action strings whose arguments contained quoted closing parenthesis https://github.com/Textualize/textual/pull/2112
- Issues with parsing action strings with tuple arguments https://github.com/Textualize/textual/pull/2112
- Fix for tabs not invalidating https://github.com/Textualize/textual/issues/2125
+- Fixed scrollbar layers issue https://github.com/Textualize/textual/issues/1358
- Fix for interaction between pseudo-classes and widget-level render caches https://github.com/Textualize/textual/pull/2155
### Changed
diff --git a/src/textual/_arrange.py b/src/textual/_arrange.py
index f1035688e..378d951eb 100644
--- a/src/textual/_arrange.py
+++ b/src/textual/_arrange.py
@@ -128,4 +128,4 @@ def arrange(
placements.extend(layout_placements)
- return DockArrangeResult(placements, arrange_widgets, scroll_spacing)
+ return DockArrangeResult(placements, arrange_widgets)
diff --git a/src/textual/_compositor.py b/src/textual/_compositor.py
index dd7816f9c..addec6ea8 100644
--- a/src/textual/_compositor.py
+++ b/src/textual/_compositor.py
@@ -484,7 +484,6 @@ class Compositor:
# Arrange the layout
arrange_result = widget._arrange(child_region.size)
arranged_widgets = arrange_result.widgets
- spacing = arrange_result.spacing
widgets.update(arranged_widgets)
if visible_only:
@@ -513,9 +512,7 @@ class Compositor:
if fixed:
widget_region = sub_region + placement_offset
else:
- total_region = total_region.union(
- sub_region.grow(spacing + margin)
- )
+ total_region = total_region.union(sub_region.grow(margin))
widget_region = sub_region + placement_scroll_offset
widget_order = order + (
diff --git a/src/textual/_layout.py b/src/textual/_layout.py
index 0cdfe5956..5c5dc2ff1 100644
--- a/src/textual/_layout.py
+++ b/src/textual/_layout.py
@@ -21,8 +21,6 @@ class DockArrangeResult:
"""A `WidgetPlacement` for every widget to describe it's location on screen."""
widgets: set[Widget]
"""A set of widgets in the arrangement."""
- spacing: Spacing
- """Shared spacing around the widgets."""
_spatial_map: SpatialMap[WidgetPlacement] | None = None
"""A Spatial map to query widget placements."""
@@ -113,7 +111,7 @@ class Layout(ABC):
else:
# Use a size of 0, 0 to ignore relative sizes, since those are flexible anyway
arrangement = widget._arrange(Size(0, 0))
- return arrangement.total_region.right + arrangement.spacing.right
+ return arrangement.total_region.right
return width
def get_content_height(
@@ -135,5 +133,5 @@ class Layout(ABC):
else:
# Use a height of zero to ignore relative heights
arrangement = widget._arrange(Size(width, 0))
- height = arrangement.total_region.bottom + arrangement.spacing.bottom
+ height = arrangement.total_region.bottom
return height
diff --git a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr
index 72fc4afec..0f3d41b3e 100644
--- a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr
+++ b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr
@@ -15508,6 +15508,165 @@
'''
# ---
+# name: test_layer_fix
+ '''
+
+
+ '''
+# ---
# name: test_layers
'''