Find a file
Peter Hutterer 75c1ba8b4f 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-06-11 12:49:14 +10:00
composite composite: initialise pOldPixmap to NullPixmap at alloc time. 2010-06-11 11:09:46 +10:00
config Move 10-evdev.conf to system config dir $datadir/X11/xorg.conf.d 2010-04-09 11:49:27 +10:00
damageext Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dbe Fix pixmap validation in miDbePositionWindow. 2010-06-11 11:09:46 +10:00
dix Change keyboard controls on slave keyboards (#27926) 2010-06-11 11:09:45 +10:00
doc Xserver(1) man page updates 2010-05-24 22:23:40 -07:00
exa Exa screen private has SavedSourceValidate, not SourceValidate 2010-04-30 19:30:04 +10:00
fb fb: fbFinishScreenInit: leaked_storage: Variable "(visuals|depths)" goes out of scope 2010-03-21 15:20:27 -07:00
glx GLX/DRI2: expose swap control extensions if DDX support is present 2010-05-21 13:55:32 +10:00
hw DRI2: Don't return junk reply instead of blocking in glXWaitForSbcOML() 2010-06-11 11:09:46 +10:00
include DRI2: advertise lowest supported DRI2 protocol version 2010-05-21 13:55:27 +10:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi midispcur: Construct Picture objects lazily in case Render is disabled. 2010-06-11 10:40:54 +10:00
miext rootless: Remove an unneeded comment 2010-05-02 20:02:53 -07:00
os Merge branch 'server-1.8-branch' of git://people.freedesktop.org/~jeremyhu/xserver into server-1.8-branch 2010-05-18 14:46:42 +10:00
randr Don't double-swap the RandR PropertyNotify event 2010-02-12 14:55:19 -08:00
record Re-enable RECORD extension. 2010-02-22 12:04:28 +10:00
render Check pixmap allocation return value when creating glyphs 2010-05-18 14:45:22 +10:00
test test/xi2: Initialize predefined atoms before XInputExtensionInit. 2010-05-18 14:44:58 +10:00
Xext Fix wrong bracket values when startOver = FALSE. 2010-05-18 14:43:40 +10:00
xfixes Make sure XFixes invisible cursor gets freed on server reset 2010-05-18 14:42:16 +10:00
Xi Xi: don't copy the modifier key count when copying device classes (#25480) 2010-06-11 12:49:14 +10:00
xkb xkb: fix invalid memory writes in _XkbCopyGeom. 2010-06-11 11:09:46 +10:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac xserver 1.8.1.901 2010-06-02 09:27:33 +10:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-09 11:49:26 +10:00
Makefile.am Fix relink targets for silent rules 2010-03-22 00:45:52 -05:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in xfree86: Search for a system xorg.conf.d 2010-04-09 11:49:27 +10:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage