diff --git a/extra/ui/windows/windows.factor b/extra/ui/windows/windows.factor index bbcf96e0b2..cba9c427b7 100755 --- a/extra/ui/windows/windows.factor +++ b/extra/ui/windows/windows.factor @@ -14,21 +14,18 @@ TUPLE: windows-ui-backend ; : crlf>lf CHAR: \r swap remove ; : lf>crlf [ [ dup CHAR: \n = [ CHAR: \r , ] when , ] each ] "" make ; -: (enum-clipboard) ( n -- n ) - EnumClipboardFormats win32-error dup 0 > [ dup , (enum-clipboard) ] when ; - : enum-clipboard ( -- seq ) - [ 0 (enum-clipboard) ] { } make nip ; + 0 [ EnumClipboardFormats win32-error dup dup 0 > ] [ ] + { } unfold nip ; : with-clipboard ( quot -- ) f OpenClipboard win32-error=0/f call CloseClipboard win32-error=0/f ; inline - : paste ( -- str ) [ - CF_UNICODETEXT IsClipboardFormatAvailable 0 = [ + CF_UNICODETEXT IsClipboardFormatAvailable zero? [ ! nothing to paste "" ] [ @@ -132,7 +129,7 @@ SYMBOL: mouse-captured } ; : key-state-down? - GetKeyState 1 16 shift bitand 0 > ; + GetKeyState 16 bit? ; : left-shift? ( -- ? ) VK_LSHIFT key-state-down? ; : left-ctrl? ( -- ? ) VK_LCONTROL key-state-down? ; @@ -319,7 +316,7 @@ SYMBOL: hWnd ! Keyboard events { [ dup WM_KEYDOWN = over WM_SYSKEYDOWN = or ] - [ drop 4dup handle-wm-keydown DefWindowProc ] } + [ drop 4dup handle-wm-keydown DefWindowProc ] } { [ dup WM_CHAR = over WM_SYSCHAR = or ] [ drop 4dup handle-wm-char DefWindowProc ] } { [ dup WM_KEYUP = over WM_SYSKEYUP = or ]