From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14207 invoked by alias); 1 Mar 2012 18:05:55 -0000 Received: (qmail 14197 invoked by uid 22791); 1 Mar 2012 18:05:54 -0000 X-SWARE-Spam-Status: No, hits=-0.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-lpp01m010-f43.google.com (HELO mail-lpp01m010-f43.google.com) (209.85.215.43) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 01 Mar 2012 18:05:41 +0000 Received: by lagr15 with SMTP id r15so1220258lag.2 for ; Thu, 01 Mar 2012 10:05:39 -0800 (PST) Received-SPF: pass (google.com: domain of vedathallac@gmail.com designates 10.152.113.229 as permitted sender) client-ip=10.152.113.229; Authentication-Results: mr.google.com; spf=pass (google.com: domain of vedathallac@gmail.com designates 10.152.113.229 as permitted sender) smtp.mail=vedathallac@gmail.com; dkim=pass header.i=vedathallac@gmail.com Received: from mr.google.com ([10.152.113.229]) by 10.152.113.229 with SMTP id jb5mr5500328lab.45.1330625139949 (num_hops = 1); Thu, 01 Mar 2012 10:05:39 -0800 (PST) Received: by 10.152.113.229 with SMTP id jb5mr4525307lab.45.1330625139740; Thu, 01 Mar 2012 10:05:39 -0800 (PST) MIME-Version: 1.0 Received: by 10.112.127.35 with HTTP; Thu, 1 Mar 2012 10:05:18 -0800 (PST) From: Vedat Hallac Date: Thu, 01 Mar 2012 18:05:00 -0000 Message-ID: Subject: Fix for modifier keys after gaining focus patch To: cygwin-xfree@cygwin.com Content-Type: multipart/mixed; boundary=f46d04088d8bc8907e04ba324e83 X-IsSubscribed: yes Mailing-List: contact cygwin-xfree-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-xfree-owner@cygwin.com Reply-To: cygwin-xfree@cygwin.com Mail-Followup-To: cygwin-xfree@cygwin.com X-SW-Source: 2012-03/txt/msg00001.txt.bz2 --f46d04088d8bc8907e04ba324e83 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1092 The recent patch for sending modifier key presses when a window gains focus depending on internal state and modifier key state has a problem. If the right control key is pressed when a window is gaining focus, it receives a left control keydown event, and the control state gets stuck because the window never receives a left control keyup event. The problem is fairly easy to replicate: run emacs-X11 from xterm, quit with [C-x C-x] using right control (which gives focus back to xterm), and try pressing keys. Until you press left control, all keys you've pressed get interpreted as [C-key]. The patch is easy (and it has already been raised in http://cygwin.com/ml/cygwin-xfree/2012-01/msg00003.html, but the idea was dismissed later because of internal state only keeping track of control key, and not individual left/right control keys). I have tried the patch below, and didn't observe any side effects so far. I've also modified the alt/ctrl check t only consider lctrl, since the other parts of the source seemed to indicate altgr emits a spurious lctrl. Best regards, Vedat Hallac --f46d04088d8bc8907e04ba324e83 Content-Type: application/octet-stream; name="0001-Fix-stuck-RCtrl-key-problem.patch" Content-Disposition: attachment; filename="0001-Fix-stuck-RCtrl-key-problem.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gza3t6hh0 Content-length: 1969 ZGlmZiAtLWdpdCBhL2h3L3h3aW4vd2lua2V5YmQuYyBiL2h3L3h3aW4vd2lu a2V5YmQuYwotLS0gYS9ody94d2luL3dpbmtleWJkLmMKKysrIGIvaHcveHdp bi93aW5rZXliZC5jCkBAIC0yODYsMTggKzI4NiwyNiBAQCB3aW5SZXN0b3Jl TW9kZUtleVN0YXRlcyAodm9pZCkKICAgewogICAgIC8qIGNvbnNpZGVyIG1v ZGlmZXIga2V5cyAqLwogCi0gICAgQk9PTCBjdHJsICAgPSAoR2V0QXN5bmNL ZXlTdGF0ZSAoVktfQ09OVFJPTCkgPCAwKTsKLSAgICBCT09MIHNoaWZ0ICA9 IChHZXRBc3luY0tleVN0YXRlIChWS19TSElGVCkgICA8IDApOworICAgIEJP T0wgbGN0cmwgICA9IChHZXRBc3luY0tleVN0YXRlIChWS19MQ09OVFJPTCkg PCAwKTsKKyAgICBCT09MIHJjdHJsICAgPSAoR2V0QXN5bmNLZXlTdGF0ZSAo VktfUkNPTlRST0wpIDwgMCk7CisgICAgQk9PTCBsc2hpZnQgID0gKEdldEFz eW5jS2V5U3RhdGUgKFZLX0xTSElGVCkgICA8IDApOworICAgIEJPT0wgcnNo aWZ0ICA9IChHZXRBc3luY0tleVN0YXRlIChWS19SU0hJRlQpICAgPCAwKTsK ICAgICBCT09MIGFsdCAgICA9IChHZXRBc3luY0tleVN0YXRlIChWS19MTUVO VSkgICA8IDApOwogICAgIEJPT0wgYWx0Z3IgID0gKEdldEFzeW5jS2V5U3Rh dGUgKFZLX1JNRU5VKSAgIDwgMCk7CiAKLSAgICBpZiAoY3RybCAmJiBhbHRn cikgY3RybCA9IEZBTFNFOworICAgIGlmIChsY3RybCAmJiBhbHRncikgbGN0 cmwgPSBGQUxTRTsKIAotICAgIGlmIChXSU5fWE9SIChpbnRlcm5hbEtleVN0 YXRlcyAmIENvbnRyb2xNYXNrLCBjdHJsKSkKLSAgICAgIHdpblNlbmRLZXlF dmVudCAoS0VZX0xDdHJsLCBjdHJsKTsKKyAgICBpZiAoV0lOX1hPUiAoaW50 ZXJuYWxLZXlTdGF0ZXMgJiBDb250cm9sTWFzaywgbGN0cmwpKQorICAgICAg d2luU2VuZEtleUV2ZW50IChLRVlfTEN0cmwsIGxjdHJsKTsKIAotICAgIGlm IChXSU5fWE9SIChpbnRlcm5hbEtleVN0YXRlcyAmIFNoaWZ0TWFzaywgc2hp ZnQpKQotICAgICAgd2luU2VuZEtleUV2ZW50IChLRVlfU2hpZnRMLCBzaGlm dCk7CisgICAgaWYgKFdJTl9YT1IgKGludGVybmFsS2V5U3RhdGVzICYgQ29u dHJvbE1hc2ssIHJjdHJsKSkKKyAgICAgIHdpblNlbmRLZXlFdmVudCAoS0VZ X1JDdHJsLCByY3RybCk7CisKKyAgICBpZiAoV0lOX1hPUiAoaW50ZXJuYWxL ZXlTdGF0ZXMgJiBTaGlmdE1hc2ssIGxzaGlmdCkpCisgICAgICB3aW5TZW5k S2V5RXZlbnQgKEtFWV9TaGlmdEwsIGxzaGlmdCk7CisKKyAgICBpZiAoV0lO X1hPUiAoaW50ZXJuYWxLZXlTdGF0ZXMgJiBTaGlmdE1hc2ssIHJzaGlmdCkp CisgICAgICB3aW5TZW5kS2V5RXZlbnQgKEtFWV9TaGlmdFIsIHJzaGlmdCk7 CiAKICAgICBpZiAoV0lOX1hPUiAoaW50ZXJuYWxLZXlTdGF0ZXMgJiBNb2Qx TWFzaywgYWx0KSkKICAgICAgIHdpblNlbmRLZXlFdmVudCAoS0VZX0FsdCwg YWx0KTsKLS0gCgo= --f46d04088d8bc8907e04ba324e83 Content-Type: text/plain; charset=us-ascii Content-length: 223 -- 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/ --f46d04088d8bc8907e04ba324e83--