I changed this method to see better what happens:
HandMorph class>>showDebugEvent: evt

        ShowEvents == true ifTrue: [
                | ofs|
                Display fill: (0@0 extent: 500@120) rule: Form over
fillColor: Color white.
                ofs := (owner hands indexOf: self) - 1 * 60.
                evt printString displayAt: (0@ofs) + (evt isKeyboard
ifTrue: [0@30]
ifFalse: [0@0]).
                self keyboardFocus printString displayAt: (0@ofs)+(0@45).

                evt isKeyboard ifTrue: [  Transcript show: evt printString;cr ]
                ].


KeyboardEvent>> printOn: aStream
        "Print the receiver on a stream"

        aStream nextPut: $[.
        aStream nextPutAll: type; nextPutAll: ' '''.
        self printKeyStringOn: aStream.
        aStream nextPut: $'.

        aStream space; nextPutAll: 'keyValue: ', self keyValue  asString.

        aStream nextPut: $]

set
HandMorph showEvents:true

Now, pressing single space, gives me this:

[keyDown ' ' keyValue: 49]
[keystroke ' ' keyValue: 32]
[keyUp ' ' keyValue: 49]
[keyUp ' ' keyValue: 49]

Pressing delete key (or fn-backspace , for those who having a lot of
spare fingers to use bad keyboards):

[keyDown ' ' keyValue: 117]
[keystroke '⌦' keyValue: 188]
[keyUp ' ' keyValue: 117]
[keyUp ' ' keyValue: 117]

now, can someone tell me , why there is 2 keyUp events for each keyDown?

and of course, main question is why key values are different for
keydown and keystroke events?
(and why delete key is not 127, but 117 or 188?)

Editor expecting 127:

        cmdMap at: (127 + 1) put: #forwardDelete:.              "del key"



--
Best regards,
Igor Stasenko.

Reply via email to