Handle WM_SYSCOMMAND -- don't beep on alpha keys
parent
85be4fbf3e
commit
7b10e2941f
|
@ -210,6 +210,9 @@ SYMBOL: hWnd
|
||||||
hWnd get window-focus send-gesture
|
hWnd get window-focus send-gesture
|
||||||
drop ;
|
drop ;
|
||||||
|
|
||||||
|
: handle-wm-syscommand ( hWnd uMsg wParam lParam -- n )
|
||||||
|
dup alpha? [ 3drop drop 0 ] [ DefWindowProc ] if ;
|
||||||
|
|
||||||
: cleanup-window ( handle -- )
|
: cleanup-window ( handle -- )
|
||||||
dup win-title [ free ] when*
|
dup win-title [ free ] when*
|
||||||
dup win-hRC wglDeleteContext win32-error=0/f
|
dup win-hRC wglDeleteContext win32-error=0/f
|
||||||
|
@ -305,7 +308,7 @@ M: windows-ui-backend (close-window)
|
||||||
: ui-wndproc ( -- object )
|
: ui-wndproc ( -- object )
|
||||||
"uint" { "void*" "uint" "long" "long" } "stdcall" [
|
"uint" { "void*" "uint" "long" "long" } "stdcall" [
|
||||||
[
|
[
|
||||||
pick
|
pick ! global [ dup windows-message-name . ] bind
|
||||||
{
|
{
|
||||||
{ [ dup WM_CLOSE = ] [ drop handle-wm-close 0 ] }
|
{ [ dup WM_CLOSE = ] [ drop handle-wm-close 0 ] }
|
||||||
{ [ dup WM_PAINT = ]
|
{ [ dup WM_PAINT = ]
|
||||||
|
@ -320,6 +323,7 @@ M: windows-ui-backend (close-window)
|
||||||
{ [ dup WM_KEYUP = over WM_SYSKEYUP = or ]
|
{ [ dup WM_KEYUP = over WM_SYSKEYUP = or ]
|
||||||
[ drop 4dup handle-wm-keyup DefWindowProc ] }
|
[ drop 4dup handle-wm-keyup DefWindowProc ] }
|
||||||
|
|
||||||
|
{ [ dup WM_SYSCOMMAND = ] [ drop handle-wm-syscommand ] }
|
||||||
{ [ dup WM_SETFOCUS = ] [ drop handle-wm-set-focus 0 ] }
|
{ [ dup WM_SETFOCUS = ] [ drop handle-wm-set-focus 0 ] }
|
||||||
{ [ dup WM_KILLFOCUS = ] [ drop handle-wm-kill-focus 0 ] }
|
{ [ dup WM_KILLFOCUS = ] [ drop handle-wm-kill-focus 0 ] }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue