exclude invisible widgets

This commit is contained in:
Will McGugan
2022-09-02 10:11:09 +01:00
parent e51ebab345
commit 44d4fa2f08
3 changed files with 8 additions and 2 deletions

View File

@@ -9,4 +9,5 @@ Static {
height: 100%;
margin: 2 4;
min-width: 30;
visibility: hidden;
}

View File

@@ -2,9 +2,14 @@ from textual.app import App
from textual.widgets import Static
class Clickable(Static):
def on_click(self):
self.app.bell()
class SpacingApp(App):
def compose(self):
yield Static()
yield Clickable()
app = SpacingApp(css_path="spacing.css")

View File

@@ -487,7 +487,7 @@ class Compositor:
# TODO: Optimize with some line based lookup
contains = Region.contains
for widget, cropped_region, region, *_ in self:
if contains(cropped_region, x, y):
if contains(cropped_region, x, y) and widget.visible:
return widget, region
raise errors.NoWidget(f"No widget under screen coordinate ({x}, {y})")