racket/gui keymap: adjust handling of 'control, etc., events
If a keymap has a grab, then discard key events that are modifier changes or key releases. Adjusts commit 8ba8d01ec0 so that Ctl-u work in DrRackt (and other framework-based programs). original commit: b3b9eb0eb4ea8ef4e97bde4b9799f92caf958737
This commit is contained in:
parent
3dcb02a3fc
commit
44a704d123
|
@ -138,7 +138,8 @@
|
|||
get-best-score
|
||||
chain-handle-mouse-event
|
||||
get-best-mouse-score
|
||||
cycle-check)
|
||||
cycle-check
|
||||
chain-check-grab)
|
||||
|
||||
(defclass keymap% object%
|
||||
|
||||
|
@ -462,7 +463,8 @@
|
|||
(eq? code 'control)
|
||||
(eq? code 'rcontrol)
|
||||
(eq? code 'release))
|
||||
prefixed?
|
||||
(or prefixed?
|
||||
(chain-check-grab obj event))
|
||||
(let ([score (get-best-score
|
||||
code
|
||||
(send event get-other-shift-key-code)
|
||||
|
@ -556,6 +558,11 @@
|
|||
1
|
||||
result)))))))))
|
||||
|
||||
(define/public (chain-check-grab obj event)
|
||||
(or (and grab-key-function #t)
|
||||
(for/or ([c (in-list chain-to)])
|
||||
(send c chain-check-grab obj event))))
|
||||
|
||||
(def/public (set-grab-mouse-function [(make-procedure 4) grab])
|
||||
(set! grab-mouse-function grab))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user