[squeak-dev] Oddities with #keyDown and Sensor

Lawson English lenglish5 at cox.net
Fri Sep 23 23:43:37 UTC 2011


On 9/23/11 1:59 PM, Bert Freudenberg wrote:
> On 23.09.2011, at 12:15, Lawson English wrote:
> [...]
>>
>> Obviously, I'm doing something fundamentally wrong
> Yes. Do Not Use Sensor Directly From Morphic Code. Otherwise you get unpredictable behavior because the Morphic main loop also fetches events from Sensor.
>
> That said, keyboard events are indeed inconsistent across platforms, and you have to make do with whatever the particular platform offers. Be sure to look at both the 8-bit char code (evtBuf at: 3) and the 32 bit unicode (evtBuf at: 6) - some keys may be reported only in one of the two places. A good strategy is to look at (evtBuf at: 6) and if it is 0 use (evtBuf at: 3).
>
> Note that on the Mac, keydown/up events use different codes than stroke events.
>
> - Bert -
>
>

That's the thing. Here are the variables from doing "evt inspect" from 
within #keyDown: and #keyStroke. Notice that the keyValue info is 
missing, period, from the event passed into #keyDown:  That is why I was 
trying to "roll my own". Linux doesn't have this problem, but the Mac 
does. I beat my head against this wall all night, stepping through the 
debugger trying to find out where things went wrong.

timeStamp:     379995
source:     a HandMorph(3216)
type:     #keystroke
buttons:     0
position:     114 at 237
handler:     nil
wasHandled:     true
keyValue:     102

timeStamp:     379995
source:     a HandMorph(3216)
type:     #keyDown
buttons:     0
position:     114 at 237
handler:     nil
wasHandled:     true
keyValue:     0






More information about the Squeak-dev mailing list