xserver-multidpi/dix
Peter Hutterer 1884db430a 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>
2010-06-28 11:52:13 +10:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
atom.c Misc coding style cleanup 2010-05-13 06:16:48 +07:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
cursor.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07: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-16 11:16:15 +10:00
dispatch.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
dispatch.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
dixfonts.c dix: use one single function to register fpe fonts 2010-06-24 13:55:28 -07:00
dixutils.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
enterleave.c Move each screen's root-window pointer into ScreenRec. 2010-06-03 14:03:23 -07:00
enterleave.h dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
eventconvert.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
events.c Revert "dix: use the event mask of the grab for TryClientEvents." 2010-06-28 11:52:13 +10:00
extension.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
ffs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
gc.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
getevents.c Remove more superfluous if(p) checks around free(p) 2010-06-06 20:27:18 +07:00
globals.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
glyphcurs.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
grabs.c Remove more superfluous if(p) checks around free(p) 2010-06-06 20:27:18 +07:00
initatoms.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
inpututils.c xfree86: Match devices based on USB ID 2010-06-11 09:30:33 +10:00
main.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
Makefile.am Move mi/miregion.c to dix/region.c 2010-06-05 17:48:20 -07:00
pixmap.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
privates.c Add dixCreatePrivateKey API 2010-06-05 19:31:37 -07:00
property.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
region.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
registry.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
resource.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
selection.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
swaprep.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
swapreq.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
tables.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
window.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07: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