diff --git a/docs/wayland-escape-closes-menu.png b/docs/wayland-escape-closes-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ac68dba7d1f7b263d455184f0b5190c47672e213 GIT binary patch literal 38618 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 literal 0 HcmV?d00001 diff --git a/docs/wayland-port.md b/docs/wayland-port.md index ec1e6b2fc..89e430862 100644 --- a/docs/wayland-port.md +++ b/docs/wayland-port.md @@ -1467,3 +1467,26 @@ in the run above is that the typing meant for the document navigated the open me A REGION CAN HOLD A STALE FRAME. In the second picture the menu bar shows Application and File and nothing else; in the third, taken after a click forced a repaint, the rest of the bar is there. The content is drawn correctly when it is drawn, but nothing repaints that strip on its own. + +## ESCAPE CLOSES THE MENU. It was bound to the wrong selector, 2026-08-14 night + + "0x001B" = "cancel:"; was + "0x001B" = "cancelOperation:"; is + +AppKit binds Escape to -cancelOperation:, and that is the selector applications implement: +LibreOffice has cancelOperation: in its selector table and does NOT have cancel:, so Escape arrived, +was translated correctly, reached -[SalFrameView keyDown:], turned into doCommandBySelector: cancel: +and stopped there. Nothing was missing from the keyboard path; one name was wrong. + +NSResponder now has the default -cancelOperation: that AppKit documents, which passes cancel: along +the responder chain, so this framework own panels that implement the older selector keep working. + +Measured after: doCommandBySelector: cancelOperation: is followed by +sendKeyInputAndReleaseToFrame code=1281 char=27, which is KEY_ESCAPE, and the open menu closes +(docs/wayland-escape-closes-menu.png). Typing straight after that goes to the MENU BAR rather than +the document, which is what LibreOffice does everywhere else: one Escape leaves the menu, a second +leaves the menu bar. + +WHAT FOUND IT was tracing the application own doCommandBySelector: alongside the key path. Return +was already working through insertNewline:, so the two side by side said the machinery was right and +one binding was not.