[PATCH] Revert "dix: use the event mask of the grab for TryClientEvents."

Peter Hutterer peter.hutterer at who-t.net
Thu Jun 24 17:16:02 PDT 2010

On Fri, Jun 25, 2010 at 01:09:41AM +0100, Daniel Stone wrote:
> On Fri, Jun 25, 2010 at 09:48:10AM +1000, Peter Hutterer wrote:
> > Behaviour of earlier X servers was to deliver the ButtonPress event
> > unconditionally, regardless of the actual event mask being set. 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 may
> > leave the user with a stuck grab.
> > 
> > XTS test results for XGrabButton are identical with and without this patch.
> > 
> > This reverts commit 48585bd1e3e98db0f3df1ecc68022510216e00cc.
> The reverted commit was meant to fix some kind of Motif bug (possibly
> mouse getting confined to a widget) or something along those lines,
> right? The explanation for this commit seems fine to me, but I vaguely
> remember the original being some kind of bugfix ... is it no longer
> necessary, or just didn't work out, or?

I think you're referring to commit 1c612acca8568fcdf9761d23f112adaf4d496f1b

    dix: if owner-events is true for passive grabs, add the window mask

that's lesstif bug where the pointer got stuck in a window. With this patch,
the need for 1c612 is obsolete, since mask & filter is always true,
regardless of owner_events. Or should be, anyway.


More information about the xorg-devel mailing list