]> gitweb.factorcode.org Git - factor.git/commitdiff
Handle WM_SYSCOMMAND -- don't beep on alpha keys
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 9 Dec 2007 23:45:49 +0000 (17:45 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 9 Dec 2007 23:45:49 +0000 (17:45 -0600)
extra/ui/windows/windows.factor

index 0146deed989ecb0ee280416f98534f6252f578c0..de9ad130febb745c8155fabe87b2c5933397dc43 100755 (executable)
@@ -210,6 +210,9 @@ SYMBOL: hWnd
     hWnd get window-focus send-gesture
     drop ;
 
+: handle-wm-syscommand ( hWnd uMsg wParam lParam -- n )
+    dup alpha? [ 3drop drop 0 ] [ DefWindowProc ] if ;
+
 : cleanup-window ( handle -- )
     dup win-title [ free ] when*
     dup win-hRC wglDeleteContext win32-error=0/f
@@ -305,7 +308,7 @@ M: windows-ui-backend (close-window)
 : ui-wndproc ( -- object )
     "uint" { "void*" "uint" "long" "long" } "stdcall" [
         [
-        pick
+        pick ! global [ dup windows-message-name . ] bind
             {
                 { [ dup WM_CLOSE = ]    [ drop handle-wm-close 0 ] }
                 { [ dup WM_PAINT = ]
@@ -320,6 +323,7 @@ M: windows-ui-backend (close-window)
                 { [ dup WM_KEYUP = over WM_SYSKEYUP = or ]
                     [ drop 4dup handle-wm-keyup DefWindowProc ] }
 
+                { [ dup WM_SYSCOMMAND = ] [ drop handle-wm-syscommand ] }
                 { [ dup WM_SETFOCUS = ] [ drop handle-wm-set-focus 0 ] }
                 { [ dup WM_KILLFOCUS = ] [ drop handle-wm-kill-focus 0 ] }