Find a file
Peter Hutterer a6374668bd Xi: don't copy the modifier key count when copying device classes (#25480)
The modifier key count is maintained by the XKB layer and
increased/decreased for all modifiers that set state.

Test case, MD/SD modifier key count in comment:
1. keyboard 1: press and hold Shift_L    # SD:1     MD:1
2. keyboard 2: press and release Shift_L # SD:1,0   MD:1,0
<class copy happens>                     # SD:1     MD:1
3. keyboard 1: release Shift_L           # SD:0     MD:1
4. keyboard 1: press and release Shift_L # SD:1,0   MD:2,1

The modifier is now logically down on the MD but not on keyboard 1 or
keyboard 2.

XKB is layered in before the DIX, it increases/decreases the modifier key
count accordingly. In the above example, during (2), the MD gets the key
release and thus clears the modifier bit. (3) doesn't forward the release to
the MD because it is already cleared. The copy of modifierKeysDown when the
lastSlave changes however increases the counter for the held key. On (4),
the press and release are both forwarded to the MD, causing a offset by 1
and thus do not clear the logical modifier state.

X.Org Bug 25480 <http://bugs.freedesktop.org/show_bug.cgi?id=25480>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit dc614484f9)
2010-11-11 12:56:35 +01:00
composite Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
config config: don't shutdown the libhal ctx if it failed to initialize (#23213) 2009-08-14 11:01:20 +10:00
damageext input: define server-supported protocol versions in one single file. 2009-09-21 21:47:35 +10:00
dbe dbe: Fix indentation 2009-07-17 14:57:50 -04:00
dix Revert "dix: use the event mask of the grab for TryClientEvents." 2010-11-11 12:50:20 +01:00
doc Xserver(1) man page updates 2010-08-21 14:10:01 -07:00
exa exa: fix ExaCheckCopyNtoN for exa_classic when source = dest 2010-06-17 15:21:09 +01:00
fb fb: make isClipped always reject negative coordinates (bug 11503) 2010-08-21 20:41:37 +01:00
glx Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998 2010-09-08 18:42:57 +02:00
hw rotation: fix cursor and overlap of one pixel. 2010-11-11 12:52:41 +01:00
include fix a sign problem with valuator data. 2010-11-11 12:38:06 +01:00
m4 dolt: add Cygwin to supported platforms 2009-10-19 11:18:58 +10:00
mi rootless: Add some sanity checking to miPaintWindow 2010-05-02 20:05:29 -07:00
miext rootless: Remove an unneeded comment 2010-05-02 20:05:23 -07:00
os os: Return BadLength instead of disconnecting BigReq clients (#4565) 2010-09-30 16:23:13 -07:00
randr rotation: fix cursor and overlap of one pixel. 2010-11-11 12:52:41 +01:00
record Re-enable RECORD extension. 2010-02-23 10:51:13 +10:00
render render: Bounds check for nglyphs in ProcRenderAddGlyphs (#28801) 2010-08-21 20:41:16 +01:00
test dix: EventToCore needs to copy the root window too. 2010-04-07 13:39:43 +10:00
Xext xace: Invalid reference to out-of-scope data. 2010-08-21 20:08:10 +01:00
xfixes Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
Xi Xi: don't copy the modifier key count when copying device classes (#25480) 2010-11-11 12:56:35 +01:00
xkb xkb: fix invalid memory writes in _XkbCopyGeom. 2010-07-05 15:53:27 +01:00
.gitignore Add (ok, fix) support for DTrace under OS X 2009-09-27 23:34:28 -07:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac xserver 1.7.7 2010-05-04 11:12:44 +10:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
cpprules.in Update xorg.conf man page & sample for changes in Xorg 1.7 2009-09-14 16:03:18 +10:00
Makefile.am Fix 'distcheck' to use host xkb files but install to build dir 2009-10-22 07:53:35 +10:00
shave-libtool.in shave: use CC tag variable on libtool 2009-09-13 16:43:42 +10:00
shave.in shave: hack around the configure ld check for make distcheck. 2009-09-04 16:41:47 +10:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-19 17:35:55 +13:00
xorg-server.pc.in Since font modules are dead, don't mention them in xorg-server.pc 2009-07-09 17:21:07 -04:00