fix treatment of caps lock in keymap%

Somewhere along the way --- probably in porting the editor
classes to Racket --- the caps-lock specification in a keymap
string was treated the same as other modifiers, but it is
supposed to be neutral when the key string starts with ":".

Closes PR 5486, 10347, 10993, 12184

original commit: d3cbea068ad6e64453b5ddd4f12b461aeef54844
This commit is contained in:
Matthew Flatt 2011-11-25 09:24:23 -07:00
parent 2916ffce08
commit 5c61b1f216

View File

@ -272,6 +272,8 @@
(if (ctrl . < . 0) "~c:" "") (if (ctrl . < . 0) "~c:" "")
(if (shift . > . 0) "s:" "") (if (shift . > . 0) "s:" "")
(if (shift . < . 0) "~s:" "") (if (shift . < . 0) "~s:" "")
(if (caps . > . 0) "l:" "")
(if (caps . < . 0) "~l:" "")
(or (hash-ref rev-keylist code) (or (hash-ref rev-keylist code)
(format "~c" code)))]) (format "~c" code)))])
(error (method-name 'keymap% 'map-function) (error (method-name 'keymap% 'map-function)
@ -384,7 +386,7 @@
(values downs code)]) (values downs code)])
(values downs code))]) (values downs code))])
(let ([newkey (let ([newkey
(let ([modval (lambda (c) (let ([modval (lambda (c [default-off? default-off?])
(cond (cond
[(memq c downs) 1] [(memq c downs) 1]
[(memq c ups) -1] [(memq c ups) -1]
@ -395,7 +397,7 @@
(modval #\a) (modval #\a)
(modval #\m) (modval #\m)
(modval #\d) (modval #\d)
(modval #\l) (modval #\l #f)
others? others?
fname fname
prev-key prev-key