| Summary: | Keyboard events tend to escape. | ||
|---|---|---|---|
| Product: | xorg | Reporter: | Naoki Hamada <nao> |
| Component: | * Other | Assignee: | Xorg Project Team <xorg-team> |
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
| Severity: | major | ||
| Priority: | high | CC: | brice.goglin, sndirsch, wouter-freedesktop |
| Version: | 7.3 (2007.09) | Keywords: | patch |
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Bug Depends on: | |||
| Bug Blocks: | 12560 | ||
Thanks for the patch. This is possibly a duplicate of bug 12509. *** Bug 12509 has been marked as a duplicate of this bug. *** Relation of duplication changed, because this one has a working fix (tested and confirmed on my machines). pushed to master and input-fixes-for-1.4.1, thanks. *** Bug 13198 has been marked as a duplicate of this bug. *** Additional comment by an affected ALSA developer (Takashi Iwai <tiwai@suse.de>): "Thanks. I think return (pDev->key->postdown[key_code >> 3] >> (key_code & 7)) & 1; would be a better fix. Then the value is either 0 or 1. The current code returns zero or non-zero." I already did that when I committed: + return !!(pDev->key->postdown[key_code >> 3] & (1 << (key_code & 7))); (already fixed in master, now cherry-picked to 1.4 branch.) |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Letters and modifiers are often lost, particularly if you type fast. The following patch remedies the symptom. diff -ur xorg-server-1.4.orig/dix/getevents.c xorg-server-1.4/dix/getevents.c --- xorg-server-1.4.orig/dix/getevents.c Thu Sep 6 09:47:48 2007 +++ xorg-server-1.4/dix/getevents.c Fri Oct 19 16:56:09 2007 @@ -95,7 +95,7 @@ static Bool key_is_down(DeviceIntPtr pDev, int key_code) { - return pDev->key->postdown[key_code >> 3] >> (key_code & 7); + return pDev->key->postdown[key_code >> 3] & (1 << (key_code & 7)); } /**