[squeak-dev] The Trunk: Morphic-mt.1785.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Oct 29 12:09:06 UTC 2021


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1785.mcz

==================== Summary ====================

Name: Morphic-mt.1785
Author: mt
Time: 29 October 2021, 2:09:00.086763 pm
UUID: 25147fd7-88ac-5842-9b9d-0cf7bc12ea57
Ancestors: Morphic-ct.1784, Morphic-eem.1784

Restores backwards compatibility in #keyString as this format is used to store-and-compare keyboard shortcuts in Etoys and other projects.

Merges fix for event comparision from Morphic-ct.1784.

=============== Diff against Morphic-eem.1784 ===============

Item was changed:
  ----- Method: KeyboardEvent>>= (in category 'comparing') -----
  = aMorphicEvent
  	super = aMorphicEvent ifFalse:[^false].
  	buttons = aMorphicEvent buttons ifFalse: [^ false].
  	keyValue = aMorphicEvent keyValue ifFalse: [^ false].
+ 	keyCode = aMorphicEvent keyCode ifFalse: [^ false].
+ 	^ true!
- 	^ true
- !

Item was changed:
  ----- Method: KeyboardEvent>>printKeyStringOn: (in category 'printing') -----
  printKeyStringOn: aStream
  	"Print a readable string representing the receiver on a given stream"
  
  	| kc inBrackets firstBracket keyString |
  	kc := self keyCharacter.
  	inBrackets := false.
  	firstBracket := [ inBrackets ifFalse: [ aStream nextPut: $<. inBrackets := true ]].
+ 	self modifiers
+ 		select: [:modifier |
+ 			"Show #shift modifier only for control characters for backwards compatibility in #keyString."
+ 			modifier ~= #shift or: [ keyValue < 32 ]]
+ 		thenDo: [:modifier |
+ 			firstBracket value.
+ 			"Capitalize modifier for backwards compatibility in #keyString."
+ 			aStream nextPutAll: modifier capitalized; nextPutAll: '-' ].
- 	self modifiers do: [:modifier |
- 		firstBracket value. aStream nextPutAll: modifier; nextPutAll: '-' ].
  
  	keyString := (Character constantNameFor: kc)
  		ifNil: [String with: kc].
  		
+ 	keyString := keyString caseOf: {
+ 		"Rename several keys for backwards compatibility in #keyString."
+ 		[ 'space' ] -> [ ' ' ].
+ 		[ 'return' ] -> [ 'cr' ].
+ 		[ 'arrowDown' ] -> [ 'down' ].
+ 		[ 'arrowUp' ] -> [ 'up' ].
+ 		[ 'arrowLeft' ] -> [ 'left' ].
+ 		[ 'arrowRight' ] -> [ 'right' ]
+ 	} otherwise: [ keyString ].
+ 	
  	keyString size > 1 ifTrue: [ firstBracket value ].
  	aStream nextPutAll: keyString.
  
  	inBrackets ifTrue: [aStream nextPut: $> ]!

Item was changed:
  ----- Method: KeyboardExerciser>>logEvent: (in category 'event handling') -----
  logEvent: evt
  
  	| eventMorph |
  	evt = self lastEvent
  		ifTrue: [^ self logEventRepetition: evt].
  
  	eventMorph := evt asMorph.
  	eventMorph
  		setProperty: #event toValue: evt copy;
+ 		balloonText: ('Click to inspect. Shift+click to explore.\\Virtual key: {8}\Virtual modifiers: {5}\\Physical key: {9}\Physical modifiers: {6}\\Key value: 0x{1} ({2}) \Key character: {3}\Key string: {4}\\{7}' withCRs format: {
- 		balloonText: ('Click to inspect. Shift+click to explore.\\Virtual key: {7}\Virtual modifiers: {4}\\Physical key: {8}\Physical modifiers: {5}\\Key value: 0x{1} ({2}) \Key character: {3}\\{6}' withCRs format: {
  			evt keyValue printPaddedWith: $0 to: 2 base: 16.
  			evt keyValue.
  			evt isKeystroke ifTrue: [evt keyCharacter printString] ifFalse: ['-'].
+ 			evt isKeystroke ifTrue: [evt keyString printString] ifFalse: ['-'].
  			(evt virtualModifiers joinSeparatedBy: ' ') asUppercase.
  			(evt physicalModifiers joinSeparatedBy: ' ') asUppercase.
  			evt printString.
  			evt virtualKey printString.
  			evt physicalKey asString printString}).
  			
  	eventMorph
  		on: #mouseEnter send: #handleEvent:emphasize: to: self;
  		on: #mouseLeave send: #handleEvent:deemphasize: to: self;
  		on: #mouseDown send: #handleEvent:inspect: to: self.
  
  	self addMorphBack: eventMorph.!



More information about the Squeak-dev mailing list