Key Decode Table

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Key Decode Table

marcel.taeumel
Hi,

there is a filter for keyDown events for CTRL combinations in

InputSensor class >> #installDuplicateKeyEntryFor: c
        | key |
        key := c asInteger.
        "first do control->alt key"
        KeyDecodeTable at: { key bitAnd: 16r9F . 2 } put: { key . 8 }.
        "then alt->alt key"
        KeyDecodeTable at: { key . 8 } put: { key . 8 }

That "bitAnd: 16r9F" is the reason why there are still keyDowns for, e.g., CTRL+1.

Should we get rid of that #bitAnd: and remove all #controlKeyPressed calls from the base system? That mixture is really confusing at the moment...

Opinions? Ideas? For the sake of cross-platform compatibility, there are onyl the following keyboard shortcuts:

CMD+<something>
CMD+SHIFT+<something>
SHIFT+<something>

I know that there are modern Mac keyboard that have 8 modifiers (left/right ctrl, left/right shift, left/right alt, left/right command). However, many shortcuts get eaten by the operating system. That's why key duplication makes sense: Hit Ctrl+Q to complete the symbol in a text field because CMD+Q will close the VM. In Squeak, CMD+Q is assigned to this feature.

Best,
Marcel