[Pharo-dev] Keyboard events is broken.

Guillermo Polito guillermopolito at gmail.com
Tue Aug 6 11:46:38 EDT 2013


On Tue, Aug 6, 2013 at 4:53 PM, Stéphane Ducasse
<stephane.ducasse at inria.fr>wrote:

> thanks guillermo :)
> Cleaning events at VM level is important.
>

Cleaning is not sooooo easy :).

I've been able to reproduce some of these problems (the delete key and the
double keyUp:). I've tried to fix them, bah, actually I did in here, but
I'd like someone else tests in their keyboard layouts in their homes :).

Regarding the difference of the keyValues between keyUp and keyDown, I did
not address it, and it kinda orthogonal, nothing to do with this particular
issue.

To see my changes, people can have a look at the diff in here:

https://gitorious.org/cogvm/blessed/commit/2214cee58a5c5266b8ab2322b98471553b1b11c2/diffs/9e2a77928edf0144f0d5c42ada66eb18918af64b

I'd like to start putting this in some issue tracker. Cog issue tracker or
Pharo one? :) Esteban?


> On Aug 6, 2013, at 4:32 PM, Guillermo Polito <guillermopolito at gmail.com>
> wrote:
>
>
>
>
> On Tue, Aug 6, 2013 at 3:40 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>
>> I changed this method to see better what happens:
>> HandMorph class>>showDebugEvent: evt
>>
>>         ShowEvents == true ifTrue: [
>>                 | ofs|
>>                 Display fill: (0 at 0 extent: 500 at 120) rule: Form over
>> fillColor: Color white.
>>                 ofs := (owner hands indexOf: self) - 1 * 60.
>>                 evt printString displayAt: (0 at ofs) + (evt isKeyboard
>> ifTrue: [0 at 30]
>> ifFalse: [0 at 0]).
>>                 self keyboardFocus printString displayAt: (0 at ofs)+(0 at 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?
>>
>
> That I don't know
>
>
>>
>> and of course, main question is why key values are different for
>> keydown and keystroke events?
>>
>
> That I'll dive right now into the vm to see what it is :).
>
>
>> (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.
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20130806/b24dff03/attachment-0002.html>


More information about the Pharo-dev mailing list