diff --git a/ui/overlays.go b/ui/overlays.go index e8edaaf..3fd96ad 100644 --- a/ui/overlays.go +++ b/ui/overlays.go @@ -74,11 +74,17 @@ func (o *Overlays) Arrange(ctx Context, bounds geom.RectangleF32, offset geom.Po } func (o *Overlays) Handle(ctx Context, e Event) bool { + var handled bool for overlay, visible := range o.visible { if visible { - o.overlays[overlay].Handle(ctx, e) // ignore handled state on overlays + if o.overlays[overlay].Handle(ctx, e) { // handle all overlays regardless of return value + handled = true + } } } + if handled { + return true + } return o.Proxy.Handle(ctx, e) }