hi,

perhaps some input from the MS Windows event API: They differentiate
between key press and release events (WM_KEYDOWN/WM_KEYUP) using
"virtual key codes" and "typed character" events (WM_CHAR) which is the
UTF-16 code of a typo generated because of some key press.

The virtual key codes include symbols for SHIFT, CTRL and any other
button present on the keyboard. For the WM_CHAR events, there is no
notion of press/release.

regards Ralph

Melchior FRANZ schrieb:
> Hi,
> 
> * Robert Osfield -- Thursday 04 June 2009:
>> I don't think calling it bug clarifies anything, [...]
> 
> I didn't call it a "bug" to clarify anything, but because the current
> behaviour is without any doubt broken. Maybe I should have used the
> MS euphemism "issue" instead.  :-)
> 
> Your examples use the comparatively trivial 'a' and 'A' case. Here clients
> can make the assumption that both are on the same physcial key (although
> even that is problematic). So, for an  aaaAAA  sequence you can assume
> that with the first 'a' physical key 38 was pressed, and with the third
> 'A' the same key was released.
> 
> But take '3' and '#' instead, and a sequence  333###. Here the client
> has no way to realize that this was one and the same physical key 12.
> It can *not* assume that the '#' is the successor of the '3' on the
> same key. Because the two symbols are only on one key on US-keyboards.
> On a German keyboard it's '3' and '§'. And clients know nothing about
> the layout.
> 
> So there's not a question *if* release events have to be made up, but
> *where*. This can be done in OSG, or in client software (given the
> necessary, but currently missing information: the keycode). But it looks
> like we already agree on that one.  :-)
> 
> 
> 
>> One also will need to decide if press 'a' and hold down then press
>> shift, then press release shift to do aAa should you get the events:
> 
> True. The problem is that OSG events don't actually represent physical
> keys, but symbols. (The keycode information is thrown away, after all). So 
> IMHO we have to think in terms of keySym sequences. And for me aaAAAaa is
> a-press ... a-release, A-press...A-release, a-press...a-release. The
> shift modifier changes symbol 'a' to 'A', and it's IMHO hard to argue
> that 'a' is still considered pressed during all of aaaAAA. That would
> mean that for the client there's 'a' and 'A' pressed at the same time
> for a while. That's especially bad if both keys are meant to have
> antagonistic effects, which is rather common, I guess.
> 
> 
> 
>> The proper solution probably lies in have raw keyboard events, and the
>> modified virtual events handled in some coherent fashion exactly what
>> I can't say yet.
> 
> Agreed. Maybe it's also time for others to add their wisdom, now that
> we are already a bit tired and annoyed. (Aren't we?  ;-)
> 
> m.
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to