[Pharo-project] [Event related] Character vs Keys
Hi! While playing (again) to add Function keys support, reading documentation of how keyboard handling works on our vm and other platforms: .Net: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown... Javascript: http://www.quirksmode.org/js/keys.html And a quick explanation of Igor of how our vm works: http://lists.squeakfoundation.org/pipermail/vm-dev/2011-November/009661.html What puzzles me is some of the following: - Keypress event should only be raised to send keystrokes having a character representation. - but some keystrokes with no character representation are taken as keypresses! (arrowup, arrowdown, esc...) (and so, used to handle events instead of doing it on keydown) - the strokes above should be only raised in keydowns IMHO. - more on, we have in Character class representations for those *non characters* :P which is funny because they are not characters. And everything works, and fits in a kind of strange way :). Now, rearranging this to follow those conventions means: - reify Keys (vs Characters). So we can model modifier keys, function keys, arrow keys, independent from Characters. - Keys (non-characters) should only be raised as single events on keydown. - and the worse part is to fix all the hardcoded shortcuts messed everywhere in the image. Any thoughts on this? Thanks! Guille
I am all for cleaning this up, but I'm sorry that I cannot be very constructive on this. I'd just like to confirm that keyboard handling with regard to special keypresses does not behave correctly. Try this in a workspace or transcript: hit ctrl-1 This prints 1. Same for 2 till 8. Guess what ctrl-9 does. No, it does not print 9. Try it ... In my opinion, ctrl-whatever should not put anything at all in the transcript window as it is not a normal keypress. Same holds for all ctrl, option, alt, command, et cetera modifier key presses, except for shift of course. But even so, the strange behavior of ctrl-9 does not really have a clear justification. On 24 Jan 2012, at 16:20, Guillermo Polito wrote:
Hi!
While playing (again) to add Function keys support, reading documentation of how keyboard handling works on our vm and other platforms:
.Net: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown... Javascript: http://www.quirksmode.org/js/keys.html
And a quick explanation of Igor of how our vm works: http://lists.squeakfoundation.org/pipermail/vm-dev/2011-November/009661.html
What puzzles me is some of the following:
- Keypress event should only be raised to send keystrokes having a character representation. - but some keystrokes with no character representation are taken as keypresses! (arrowup, arrowdown, esc...) (and so, used to handle events instead of doing it on keydown) - the strokes above should be only raised in keydowns IMHO. - more on, we have in Character class representations for those non characters :P which is funny because they are not characters.
And everything works, and fits in a kind of strange way :).
Now, rearranging this to follow those conventions means: - reify Keys (vs Characters). So we can model modifier keys, function keys, arrow keys, independent from Characters. - Keys (non-characters) should only be raised as single events on keydown. - and the worse part is to fix all the hardcoded shortcuts messed everywhere in the image.
Any thoughts on this?
Thanks! Guille
---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
I should learn more on the topic :). But on the principle yes I want to avoid all the hardcode stuff everywhere. Guillermo in feb we should have a coffee meeting with a group building new UI using Python (of course) and I could ask them how they manage keystrokes. Or we can also interact with them by mail. May be they do not have the answer.
Hi!
While playing (again) to add Function keys support, reading documentation of how keyboard handling works on our vm and other platforms:
.Net: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown... Javascript: http://www.quirksmode.org/js/keys.html
And a quick explanation of Igor of how our vm works: http://lists.squeakfoundation.org/pipermail/vm-dev/2011-November/009661.html
What puzzles me is some of the following:
- Keypress event should only be raised to send keystrokes having a character representation. - but some keystrokes with no character representation are taken as keypresses! (arrowup, arrowdown, esc...) (and so, used to handle events instead of doing it on keydown) - the strokes above should be only raised in keydowns IMHO. - more on, we have in Character class representations for those non characters :P which is funny because they are not characters.
And everything works, and fits in a kind of strange way :).
Now, rearranging this to follow those conventions means: - reify Keys (vs Characters). So we can model modifier keys, function keys, arrow keys, independent from Characters. - Keys (non-characters) should only be raised as single events on keydown. - and the worse part is to fix all the hardcoded shortcuts messed everywhere in the image.
Any thoughts on this?
Thanks! Guille
participants (3)
-
Guillermo Polito -
Johan Fabry -
Stéphane Ducasse