xserver-multidpi/dix
Peter Hutterer ffbdba0319 Revert "dix: use the event mask of the grab for TryClientEvents."
Behaviour of earlier X servers was to deliver the ButtonPress event
unconditionally, regardless of the actual event mask being set. This is
documented in the protocol:
"This request establishes a passive grab.  In the future, the pointer is
actively grabbed as described in GrabPointer, the last-pointer-grab time is
set to the time at which the button was pressed (as transmitted in the
ButtonPress event), and the ButtonPress event is reported if all of the
following conditions are true:
    <list of conditions, event mask is not one of them>"

Thus, a GrabButton event will always deliver the button press event, a
GrabKey always the key press event, etc. Same goes for XI and XI2.

Reproducible with a simple client requesting a button grab in the form of:
    XGrabButton(dpy, AnyButton, AnyModifier, win, True, ButtonReleaseMask,
                GrabModeAsync, GrabModeAsync, None, None);

On servers before MPX/XI2, the client will receive a button press and
release event. On current servers, the client receives only the release.
Clients that expect the press event to be delivered unconditionally.

XTS Xlib13 XGrabButton 5/39 now passes.

This reverts commit 48585bd1e3.
Effectively reverts commit 1c612acca8 as well,
the code introduced with 1c612 is not needed anymore.

Conflicts:

	dix/events.c

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 1884db430a)
2010-11-14 02:09:53 -08:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
Makefile.am dtrace: Add Xserver-dtrace.h to CLEANFILES 2009-12-15 16:51:48 -08:00
Xserver-dtrace.h.in Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
Xserver.d Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
atom.c Constify atom name strings 2009-02-03 10:06:00 -08:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
colormap.c dix: Fix up colormap fixup. 2009-10-23 09:46:30 +09:00
cursor.c dix/configure: remove null root cursor option 2010-01-27 21:28:57 -08:00
deprecated.c dix: remove dixLookupResource - we don't have any users left. 2009-09-07 10:51:16 +10:00
devices.c dix: the default axis mode is Relative, not "0". 2010-06-15 13:22:39 +10:00
dispatch.c Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
dispatch.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
dixfonts.c New header for XF86Bigfont server functions 2010-03-22 00:48:04 -05:00
dixutils.c Remove CopyISOLatin1Lowered 2009-10-15 08:08:23 -07:00
enterleave.c dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
enterleave.h dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
eventconvert.c dix: EventToCore needs to copy the root window too. 2010-01-27 14:38:16 -08:00
events.c Revert "dix: use the event mask of the grab for TryClientEvents." 2010-11-14 02:09:53 -08:00
extension.c dix: be more verbose when we run out of opcodes 2010-04-09 11:48:36 +10:00
ffs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
gc.c Replace dixLookupResource by dixLookupResourceBy{Type,Class} 2009-03-09 13:08:09 -07:00
getevents.c fix a sign problem with valuator data. 2010-11-14 02:09:41 -08:00
globals.c DPMS: Remove the defaultDPMS* variables 2009-04-03 18:22:20 -04:00
glyphcurs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
grabs.c input: remove XI2 keysym grabs, use keycode grabs instead. 2009-07-22 12:12:51 +10:00
initatoms.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
inpututils.c Un-export ApplyPointerMapping. This is an in-server function. 2009-09-03 08:39:26 +10:00
main.c dix: Default DPMS timeout values to match screensaver values 2010-11-14 02:09:34 -08:00
pixmap.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
privates.c dix: Fix a double free in dixFreePrivates. 2009-10-07 16:22:46 -07:00
property.c dix: don't return BadMatch from GetProperty (#23562) 2009-09-03 14:19:35 +10:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c dix: add smooth limited pointer acceleration profile 2010-01-01 11:22:42 -08:00
registry.c Cygwin/X: Tidy up some cosmetic issues in log strings 2010-03-16 13:55:20 +00:00
resource.c dix: Update element count in FreeResource*() 2010-06-02 10:43:03 +10:00
selection.c xserver: Avoid sending uninitialized padding data over the network 2009-02-16 13:28:38 +10:00
swaprep.c dix: switch to byte-counting functions. 2009-07-14 10:05:54 +10:00
swapreq.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
tables.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
window.c Add a ConfigNotify hook. 2010-03-16 09:51:08 -04:00