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