win32: mouse-wheel events
Closes PR 11520
This commit is contained in:
parent
e3c4a0ae98
commit
cadc128994
|
@ -121,8 +121,11 @@
|
|||
[caps-down? (not (zero? (arithmetic-shift (GetKeyState VK_CAPITAL) -1)))]
|
||||
[alt-down? (= (bitwise-and (HIWORD lParam) KF_ALTDOWN) KF_ALTDOWN)])
|
||||
(let-values ([(id other-shift other-altgr other-shift-altgr)
|
||||
(if is-char?
|
||||
;; wParam is a character
|
||||
(cond
|
||||
[(symbol? wParam)
|
||||
(values wParam #f #f #f)]
|
||||
[is-char?
|
||||
;; wParam is a character or symbol
|
||||
(let ([id wParam]
|
||||
[sc (THE_SCAN_CODE lParam)])
|
||||
;; Remember scan codes to help with some key-release events:
|
||||
|
@ -153,7 +156,8 @@
|
|||
(values id s a sa)
|
||||
;; different AltGr
|
||||
(values id s o sa)))
|
||||
(values id s a sa))))))
|
||||
(values id s a sa))))))]
|
||||
[else
|
||||
;; wParam is a virtual key code
|
||||
(let ([id (hash-ref win32->symbol wParam #f)]
|
||||
[override-mapping? (and control-down? (not alt-down?))]
|
||||
|
@ -210,7 +214,7 @@
|
|||
[(and (not id) is-up?)
|
||||
(values (try-generate-release) #f #f #f)]
|
||||
[else
|
||||
(values id #f #f #f)]))))])
|
||||
(values id #f #f #f)])))])])
|
||||
(and id
|
||||
(if just-check?
|
||||
#t
|
||||
|
|
|
@ -172,6 +172,16 @@
|
|||
result)]
|
||||
[(= msg WM_CHAR)
|
||||
(do-key w msg wParam lParam #t #f default)]
|
||||
[(= msg WM_MOUSEWHEEL)
|
||||
(let ([orig-delta (quotient (HIWORD wParam) WHEEL_DELTA)])
|
||||
(let loop ([delta (abs orig-delta)])
|
||||
(unless (zero? delta)
|
||||
(do-key w msg (if (negative? orig-delta)
|
||||
'wheel-down
|
||||
'wheel-up)
|
||||
lParam #f #f void)
|
||||
(loop (sub1 delta)))))
|
||||
0]
|
||||
[(= msg WM_COMMAND)
|
||||
(let* ([control-hwnd (cast lParam _LPARAM _HWND)]
|
||||
[wx (any-hwnd->wx control-hwnd)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user