From 495c690187722f5343bc4318a39bb59348de7ed7 Mon Sep 17 00:00:00 2001 From: aarzilli Date: Sat, 10 Apr 2021 09:46:19 +0200 Subject: [PATCH] app: prevent default Windows event handler from running for WM_SYSKEYUP/DOWN F10 has a special meaning on Windows, if the default handler runs the first key press following F10 will not generate a key.Press event and if the first key press after F10 is space the window menu will be opened instead. Fixes #213 Signed-off-by: aarzilli --- app/internal/wm/os_windows.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/internal/wm/os_windows.go b/app/internal/wm/os_windows.go index 05d440ea..71170498 100644 --- a/app/internal/wm/os_windows.go +++ b/app/internal/wm/os_windows.go @@ -249,7 +249,14 @@ func windowProc(hwnd syscall.Handle, msg uint32, wParam, lParam uintptr) uintptr if msg == windows.WM_KEYUP || msg == windows.WM_SYSKEYUP { e.State = key.Release } + w.w.Event(e) + + if (wParam == windows.VK_F10) && (msg == windows.WM_SYSKEYDOWN || msg == windows.WM_SYSKEYUP) { + // Reserve F10 for ourselves, and don't let it open the system menu. Other Windows programs + // such as cmd.exe and graphical debuggers also reserve F10. + return 0 + } } case windows.WM_LBUTTONDOWN: w.pointerButton(pointer.ButtonPrimary, true, lParam, getModifiers())