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) def dispatch(event)
# An open menubar has priority — its keys (arrows, Enter, hotkeys, Esc) # 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? if @menubar&.open?
result = @menubar.handle_event(event) result = @menubar.handle_event(event)
return :halt if result == :halt return :halt if result == :halt
return nil if result return nil
end end
# Modal windows: top window gets first shot at events # Modal windows: top window gets first shot at events

View File

@@ -91,8 +91,11 @@ module BBS
end end
def handle_event(event) 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 nil
end end
@@ -142,9 +145,6 @@ module BBS
return :handled return :handled
end end
end end
if event.mouse? && event.mouse.kind == :press && event.mouse.button == :left
return handle_mouse_press(event)
end
nil nil
end end