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
|
get-best-score
|
||||||
chain-handle-mouse-event
|
chain-handle-mouse-event
|
||||||
get-best-mouse-score
|
get-best-mouse-score
|
||||||
cycle-check)
|
cycle-check
|
||||||
|
chain-check-grab)
|
||||||
|
|
||||||
(defclass keymap% object%
|
(defclass keymap% object%
|
||||||
|
|
||||||
|
@ -462,7 +463,8 @@
|
||||||
(eq? code 'control)
|
(eq? code 'control)
|
||||||
(eq? code 'rcontrol)
|
(eq? code 'rcontrol)
|
||||||
(eq? code 'release))
|
(eq? code 'release))
|
||||||
prefixed?
|
(or prefixed?
|
||||||
|
(chain-check-grab obj event))
|
||||||
(let ([score (get-best-score
|
(let ([score (get-best-score
|
||||||
code
|
code
|
||||||
(send event get-other-shift-key-code)
|
(send event get-other-shift-key-code)
|
||||||
|
@ -556,6 +558,11 @@
|
||||||
1
|
1
|
||||||
result)))))))))
|
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])
|
(def/public (set-grab-mouse-function [(make-procedure 4) grab])
|
||||||
(set! grab-mouse-function grab))
|
(set! grab-mouse-function grab))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user