Mantis - Squeak
Viewing Issue Advanced Details
7597 VM minor always 01-13-11 02:22 01-13-11 03:16
lewis  
lewis  
normal  
assigned  
open  
none    
none  
0007597: keyUp events reported incorrectly on SqueakVM
The standard VM reports keyUp events incorrectly if two keys are depressed. The keyUp event is reported for the most recently depressed key, not for the key that is actually being released. Works correctly on Cog, defect exists for standard VM on unix and Mac (not sure for Windows).
Reported on vm-dev list by Matthew Fulmer (HandMorph-handleEvent.st referenced in the mail posting is attached to this bug report):

Date: Wed, 12 Jan 2011 20:30:47 -0500
From: Matthew Fulmer <tapplek@gmail.com>
To: vm-dev@lists.squeakfoundation.org
Subject: Re: [Vm-dev] Where are precompiled stack VMs or interpreter VMs?

On Wed, Jan 12, 2011 at 12:15:22PM -0500, David T. Lewis wrote:
>
> On Tue, Jan 11, 2011 at 12:45:14PM -0500, Matthew Fulmer wrote:
> >
> > - Keyboard Up events are incorrect when multiple keys are
> > pressed at once. The latest vm's on squeakvm.org fail,
> > however, they are nearing a year old, and the cog VMs (all
> > newer) don't have this bug.
>
> I'm not familiar with the Keyboard Up event issue. Can you say
> how to reproduce this, preferably with a Squeak trunk image?
> Sorry if this was discussed before, but I don't recall it.
>
> I was not anticipating any further changes to the interpreter VM
> until after this round of "official" builds, but this one sounds
> like it may be important.

File in the attached changeset. (don't show keystroke events)

do: "HandMorph showEvents: true"

quickly, press A, press B, release A, release B.

you should see these flash by the top-left corner of the screen,
and on Cog, this is what you see:

    [keyDown 'a']
    [keyDown 'b']
    [keyUp 'a']
    [keyUp 'b']

on the official VMs, you instead see this:

    [keyDown 'a']
    [keyDown 'b']
    [keyUp 'b']

(you can of course use any two keyboard buttons)

It's an issue on mac and linux at least. Not sure about windows

--
Matthew Fulmer (a.k.a. Tapple)

[-- Attachment 0000003: HandMorph-handleEvent.st --]
[-- Type: text/x-squeak-fileout, Encoding: quoted-printable, Size: 2.4K --]

[-- text/x-squeak-fileout is unsupported (use 'v' to view this part) --]
 HandMorph-handleEvent.st [^] (2,259 bytes) 01-13-11 02:22

Notes
(0014022)
matthewf   
01-13-11 03:16   
the bug is present on the official linux VM
I think, but am not sure, it is present on the official mac VM
I don't know about the official window's VM

the bug is fixed on the Cog linux VM
the bug is fixed on the Cog windows VM
I don't know about the Cog mac VM

This bug is notably fixed on the old 3.8-era Croquet VMs (all platforms), which may explain why it is fixed on Cog