How to detect shift down

Ned Konz ned at
Sat Apr 27 00:19:36 UTC 2002

On Friday 26 April 2002 04:53 pm, Ross Boylan wrote:
> On Wed, Apr 24, 2002 at 11:27:55AM +0200, Andreas Raab wrote:

> So I'm trying to find a way to detect if the shift key is pressed
> at the instanct the method is executing.  Does the VM design make
> this difficult (e.g, the shift down is reported as an even, and if
> you aren't in line to catch it you're just not going to find out),
> or am I just missing an easy solution?

The shift state is included in all UserEvents as bit number 3. 

However, the shift events themselves aren't reported; they're just 
available as modifier bits on other events.

So if there are no other mouse or keyboard events, you will never see 
the shift being pressed, at least in the XWindow port of Squeak.

If you're moving the mouse around or hitting other keys, you'll see 

To see them from another thread, you should be able to say Sensor 

d _ Delay forMilliseconds: 100.
p _ [ [ d wait. Sensor shiftPressed asString  displayAt: 20 at 100 ] 
repeat ] forkAt: 39

Ned Konz

More information about the Squeak-dev mailing list