public inbox for cygwin-xfree@sourceware.org help / color / mirror / Atom feed
From: Oliver Schmidt <oschmidt-mailinglists@gmx.de> To: cygwin-xfree <cygwin-xfree@cygwin.com> Subject: Re: considering modifier keys after gaining focus Date: Thu, 12 Jan 2012 12:19:00 -0000 [thread overview] Message-ID: <4F0ECFC5.7090903@gmx.de> (raw) In-Reply-To: <4F0DC3DF.8000802@dronecode.org.uk> Hi Jon, On 1/11/2012 6:16 PM, Jon TURNEY wrote: > I think it is useful to consider this history when reviewing a patch, > Are we going in circles? Are we doing in the wrong direction? I appreciate your carefulness und thoroughness. It's of course always better to understand what is going on, especially in a large code base with a long history. > Anyhow, in a brief look at some mailing list discussions from 2002 or so, it > seems that: > i) We must release modifier keys when focus leaves the X server, as modifier > keys may be part of a Windows shell shortcut which moves the focus elsewhere, > e.g. alt-tab) so the key-release isn't received by the X server. Ah ok, so my guess was in the right direction ;-) > ii) We must release non-modifier keys when focus leaves the X server, or they > continue to auto-repeat in the X server (specifically a problem when a > key-press closes a window (such as typing ctrl-d or exit into an Xterm), as > the key-release goes to the next window to receive focus, which may not be an > X window) Interesting, I didn't know this. Thank you for figuring this out from the malinglists archives. > iv) What should we do about held non-modifier keys when focus enters the X server? > > It looks like these should be pressed as well for strict correctness. If we > hold down a non-modifier key so it auto-repeats, and move the focus between X > and native windows, the native windows receive repeats, but the the X windows > do not. I doubt many people care about this behaviour, though :-) Yes, you are right: I can reproduce this phenomenon by holding down Ctrl+N for opening windows and the key is not autorepeated (so only one window is opened, whereas under Linux xserver many windows are opened). In my daily usage I didn't discover this phenomenon. My patch only addresses the problem, that the modifier keys are not right after keyboard driven focus change, disrupting my workflow. So I agree that there might not many people caring about this behaviour. > Hm... on looking at this again, isn't that code you are adding checking the > internal state of non-latching modifiers bogus? If we release all keys on > WM_KILLFOCUS, then the non-latching modifiers will always be clear when the > WM_SETFOCUS occurs, so we will always generate the keypress for the modifier. Yes, my patch also generates key release events for modifiers despite the fact, that all modifier have been released after the xserver looses the window focus. When writing the patch, I wasn't sure if this is always the case, so I made the code a little bit more "robust" in the sense that it tries to correct the modifier keys in any case (so it will always work, even if something goes wrong in other code locations). Best regards, Oliver -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://x.cygwin.com/docs/ FAQ: http://x.cygwin.com/docs/faq/
next prev parent reply other threads:[~2012-01-12 12:19 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-08-16 15:31 Oliver Schmidt 2011-08-21 8:44 ` Corinna Vinschen 2011-08-21 10:04 ` Oliver Schmidt 2012-01-08 15:23 ` Oliver Schmidt 2012-01-09 14:06 ` Jon TURNEY 2012-01-09 18:11 ` Oliver Schmidt 2012-01-10 9:47 ` Oliver Schmidt 2012-01-10 10:15 ` Oliver Schmidt 2012-01-11 17:16 ` Jon TURNEY 2012-01-12 12:19 ` Oliver Schmidt [this message] 2012-01-12 12:38 ` Oliver Schmidt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4F0ECFC5.7090903@gmx.de \ --to=oschmidt-mailinglists@gmx.de \ --cc=cygwin-xfree@cygwin.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).