This commit is contained in:
2026-05-13 18:26:35 +02:00
parent 40c9397e12
commit 04eaebdc21
2 changed files with 8 additions and 7 deletions

View File

@@ -161,11 +161,12 @@ module BBS
def dispatch(event)
# An open menubar has priority — its keys (arrows, Enter, hotkeys, Esc)
# must beat any modal window's focused widget.
# must beat any modal window's focused widget. Always swallow events
# while the menu is open so they cannot leak through to windows.
if @menubar&.open?
result = @menubar.handle_event(event)
return :halt if result == :halt
return nil if result
return nil
end
# Modal windows: top window gets first shot at events

View File

@@ -91,8 +91,11 @@ module BBS
end
def handle_event(event)
return open_via_keyboard(event) if !open? && event.key?
return navigate(event) if open?
return navigate(event) if open?
return open_via_keyboard(event) if event.key?
if event.mouse? && event.mouse.kind == :press && event.mouse.button == :left
return handle_mouse_press(event)
end
nil
end
@@ -142,9 +145,6 @@ module BBS
return :handled
end
end
if event.mouse? && event.mouse.kind == :press && event.mouse.button == :left
return handle_mouse_press(event)
end
nil
end