xserver/hw/xfree86
Peter Hutterer ad3bc57134 xfree86: update the device state for all DGA events (#59100)
DGA only handles master devices but it does intercept slave device events as
well (since the event handlers are per event type, not per device).

The DGA code must thus call into UpdateDeviceState to reset the button/key
state on the slave device before it discards the remainder of the event.

Test case:
- Passive GrabModeSync on VCP
- Press button
- Enable DGA after ButtonPress
- AllowEvents(SyncPointer)
- Release button

The button release is handled by DGAProcessPointerEvent but the device state
is never updated, so the slave ends up with the button permanently down.
And since the master's button state is the union of the slave states, the
master has the button permanently down.

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

Reported-by: Steven Elliott <selliott4@austin.rr.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2013-01-11 14:57:40 +10:00
..
common xfree86: update the device state for all DGA events (#59100) 2013-01-11 14:57:40 +10:00
ddc api: rework the X server driver API to avoid global arrays. 2012-06-05 13:22:18 +01:00
dixmods Constify extensions in LoadExtension users 2012-11-21 11:13:55 +11:00
doc dix: Remove refs to mi backing store from docs 2012-09-23 10:31:39 -07:00
dri Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
dri2 dix: Pull client-is-local flag up to the ClientRec 2012-09-20 14:36:39 -04:00
exa api: rework the X server driver API to avoid global arrays. 2012-06-05 13:22:18 +01:00
fbdevhw Make stub version of fbdevHWAdjustFrame match new prototype in fbdevhw.h 2012-06-11 18:29:16 -07:00
i2c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
int10 int10: fix pci_device_read_rom usage 2012-10-04 13:06:02 -07:00
loader Fix up formatting of initializers for arrays of structs 2012-08-06 15:22:53 -07:00
man doc: Drop XAA references from xorg.conf man page 2012-07-25 14:03:34 -07:00
modes xf86: select a fake output for headless servers 2012-11-27 16:30:53 -08:00
os-support linux: Prefer ioctl(KDSKBMUTE, 1) over ioctl(KDSKBMODE, K_OFF) 2012-11-19 12:13:39 +10:00
parser Remove obsolete tab stop comments from hw/xfree86/parser/*.c 2012-06-20 21:41:52 -07:00
ramdac Remove XAA 2012-07-10 00:41:57 -07:00
shadowfb api: rework the X server driver API to avoid global arrays. 2012-06-05 13:22:18 +01:00
utils cvt man page should use Hz, not kHz, for vertical refresh rate 2012-05-18 15:00:47 -07:00
vbe api: rework the X server driver API to avoid global arrays. 2012-06-05 13:22:18 +01:00
vgahw xf86dga: handle DGAAvailable for gpu screens. (v2) 2012-07-07 10:37:10 +01:00
x86emu Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
.gitignore xfree86: Move sdksyms generation to ddx toplevel 2011-06-23 05:28:31 -07:00
Makefile.am Remove XAA 2012-07-10 00:41:57 -07:00
sdksyms.sh dix: fix redundant redeclaration warnings in dixfont 2012-11-05 13:24:59 -06:00
xorgconf.cpp xfree86: use sed rather than cpp to perform string substitutions 2011-01-18 15:11:14 -08:00