'From Squeak 3.2 of 11 July 2002 [latest update: #4917] on 2 August 2002 at 10:39:27 am'! "Change Set: TeletypeUnSwap-nk Date: 2 August 2002 Author: Ned Konz PREREQUISITES: This requires these change sets to be loaded first (in order): KeysAtValue-nk KeyUnSwap-nk This makes Ian's TeletypeMorph work with the swapControlAndAltKeys and duplicateControlAndAltKeys Preferences. I got tired of not being able to use control keys in Vim "! !TeletypeMorph methodsFor: 'events' stamp: 'nk 8/2/2002 10:04'! keyStroke: event "Receive a character from the keyboard." | evt char | evt _ event unswapped. scrollOnInput ifTrue: [self pageEnd]. char _ evt keyCharacter asciiValue. evt controlKeyPressed ifFalse: [char == 1 ifTrue: [^self pageHome]. char == 4 ifTrue: [^self pageEnd]. char == 11 ifTrue: [^self pageUp: rows // 2]. char == 12 ifTrue: [^self pageDown: rows // 2]]. (keyboardControlsSelection and: [evt commandKeyPressed]) ifTrue: [evt keyCharacter == $c ifTrue: [^self copySelection]. evt keyCharacter == $v ifTrue: [^self sendSelection]]. (metaSendsEscape and: [evt commandKeyPressed]) ifTrue: [down downcall: Character escape asciiValue]. "Cursor keys clash with control keys: differentiate by sending 128+cursorKeyCode." (char == 8 & deleteIsDel and: [evt controlKeyPressed not]) ifTrue: [char _ 127]. (char < 32 and: [evt controlKeyPressed not]) ifTrue: [char _ char + 128]. down downcall: char. evt wasHandled: true.! !