[Pharo-project] Keyboard events issue on Mac VM
Hi, The Mac OS virtual machine has wrong processing of keyUp and keyDown events. It discards event character value. This events are very rarely used (keyStroke is preferred) so there`s no surprise that it was not reported before. See http://code.google.com/p/pharo/issues/detail?id=1995 Cheers, -- Pavel
You are mistaken in your interpretation of the event codes. please read http://isqueak.org/ioGetNextEvent You will find the windows VM will return Windows meta key codes which won't match the values for keyStroke Tweak in Croquet & Sophie uses KeyDown/keyUp for Tweak event handling and ignores keyStroke: On 2010-02-18, at 12:32 PM, Pavel Krivanek wrote:
Hi,
The Mac OS virtual machine has wrong processing of keyUp and keyDown events. It discards event character value.
This events are very rarely used (keyStroke is preferred) so there`s no surprise that it was not reported before.
See http://code.google.com/p/pharo/issues/detail?id=1995
Cheers, -- Pavel
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
If you press the key "a", you`ll get #(2 2534082 0 1 0 0 0 1) #(2 2534082 97 0 0 97 0 1) #(2 2534157 0 2 0 0 0 1) from the virtual machine. For "A": #(2 2536225 0 1 1 0 0 1) #(2 2536225 65 0 1 65 0 1) #(2 2536413 0 2 8 0 0 1) The only event with the information about pressed character is keyStroke (the fourth value is 0) so you will not know the resultant character because MacRoman charCode and/or utf32Code is missing (they are present on Linux). It is printed from InputEventFetcher>>signalEvent:. Am I missing something? -- Pavel On Thu, Feb 18, 2010 at 9:46 PM, John M McIntosh <johnmci@smalltalkconsulting.com> wrote:
You are mistaken in your interpretation of the event codes. please read http://isqueak.org/ioGetNextEvent
You will find the windows VM will return Windows meta key codes which won't match the values for keyStroke
Tweak in Croquet & Sophie uses  KeyDown/keyUp for Tweak event handling and ignores keyStroke:
On 2010-02-18, at 12:32 PM, Pavel Krivanek wrote:
Hi,
The Mac OS virtual machine has wrong processing of keyUp and keyDown events. It discards event character value.
This events are very rarely used (keyStroke is preferred) so there`s no surprise that it was not reported before.
See http://code.google.com/p/pharo/issues/detail?id=1995
Cheers, -- Pavel
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Â Twitter: Â squeaker68882 Corporate Smalltalk Consulting Ltd. Â http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On 2010-02-18, at 1:37 PM, Pavel Krivanek wrote:
If you press the key "a", you`ll get
#(2 2534082 0 1 0 0 0 1) #(2 2534082 97 0 0 97 0 1) #(2 2534157 0 2 0 0 0 1)
from the virtual machine. For "A":
#(2 2536225 0 1 1 0 0 1) #(2 2536225 65 0 1 65 0 1) #(2 2536413 0 2 8 0 0 1)
The only event with the information about pressed character is keyStroke (the fourth value is 0) so you will not know the resultant character because MacRoman charCode and/or utf32Code is missing (they are present on Linux). It is printed from InputEventFetcher>>signalEvent:. Am I missing something?
-- Pavel
It works as designed.
The only event with the information about pressed character is keyStroke (the fourth value is 0)
Is zero "ON PURPOSE" because the windows VM is unable to supply what character or unicode is being pressed at that point in time. The keycode for the 'a' key is zero, the macroman value is 97, and the unicode value is 97. looks fine I note the bug is that the key up's modifier should be 1 versus the 8. =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
On Thu, Feb 18, 2010 at 11:05 PM, John M McIntosh <johnmci@smalltalkconsulting.com> wrote:
On 2010-02-18, at 1:37 PM, Pavel Krivanek wrote:
If you press the key "a", you`ll get
#(2 2534082 0 1 0 0 0 1) #(2 2534082 97 0 0 97 0 1) #(2 2534157 0 2 0 0 0 1)
from the virtual machine. For "A":
#(2 2536225 0 1 1 0 0 1) #(2 2536225 65 0 1 65 0 1) #(2 2536413 0 2 8 0 0 1)
The only event with the information about pressed character is keyStroke (the fourth value is 0) so you will not know the resultant character because MacRoman charCode and/or utf32Code is missing (they are present on Linux). It is printed from InputEventFetcher>>signalEvent:. Am I missing something?
-- Pavel
It works as designed.
The only event with the information about pressed character is keyStroke (the fourth value is 0)
Is zero "ON PURPOSE" because the windows VM is unable to supply what character or unicode is being pressed at that point in time. The keycode for the 'a' key is zero, the macroman value is 97, and the unicode value is 97. looks fine
I note the bug is that the key up's modifier should be 1 versus the 8.
Ok, thank you -- Pavel
participants (2)
-
John M McIntosh -
Pavel Krivanek