[Xquartz-dev] State of modifier keys

Jeremy Huddleston jeremyhu at freedesktop.org
Wed Apr 30 14:38:39 PDT 2008


It's probably just in 1.4.0-apple5 ... we redid a bit of the input code 
in 1.4, so we probably need to do a darwinUpdateModifiers() or something 
like that in X11ApplicationSetFrontProcess()

Please file a bug at xquartz.macosforge.org, so this doesn't fall by the 
wayside...

--Jeremy

Harald Hanche-Olsen wrote:
> Hmm. I've suddenly discovered something new. Don't know if I've seen
> it before, but the problem seems to be this: When X11 loses focus and
> regains it, it assumes that the state of the modifiers is unchanged
> since it last had focus.
>
> This is easily demonstrated with an xev and (say) a Terminal window.
>
> With the xev window having focus, press a modifer - say shift - and
> hold it down while clicking on the Terminal window. Release the
> modifier, click on xev again, and type a regular key. Check the State
> field in the resulting xev output: 0x1 for the shift key, 0x4 for the
> control key, 0x5 for both, and so on.
>
> You may ask, why would someone do something as convoluted as this? But
> I think it happens easily. It happened repeatedly to me before I
> figured it out. I have set up Spaces so I change space using ctrl+alt
> with arrow keys to move around. That makes it easy for X11 to lose
> focus while the control key is down. An xterm that believes the
> control key is down does not behave normally, I can now say with some
> confidence.
>
> I suppose there must be a way for an application to query the state of
> the modifier keys, without keeping track of keypress/keyrelease
> events? So that seems to be what X11 must do to, each time it loses
> and regains focus - so it can adjust its own beliefs about current
> state.
>
> Since I cannot recall stumbling over this before, maybe it used to do
> that, and this is a regression?
>
> I run X11-2.2.1-rc2, Xquartz-1.4.0-apple5, and Ben's quartz-wm.
>
> - Harald
> _______________________________________________
> Xquartz-dev mailing list
> Xquartz-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/xquartz-dev
>   



More information about the Xquartz-dev mailing list