[CFT] Xorg 7.5.1

Martin Wilke miwi at FreeBSD.org
Sun Feb 27 23:03:14 UTC 2011


go and commit :)

On Mon, Feb 28, 2011 at 5:23 AM, Christian Weisgerber <naddy at mips.inka.de>wrote:

> Martin Wilke <miwi at freebsd.org> wrote:
>
> > The Xorg T(m)eam is happy to announce the next round of Xorg fun! The
> X-Server
> > has been patched to the latest 1.7.X series, drivers and fonts have been
> > updated to the latest versions,
>
> Now that this has been committed, can we *please* have the
>
> Revert "dix: use the event mask of the grab for TryClientEvents."
>
> http://cgit.freedesktop.org/xorg/xserver/commit/?id=018c878e9495b21146c8f38617fdd1bf6d8cc73b
>
> change, too?  I don't know if there is other Motif fallout, but
> without this, mwm(1) at least is unusable.
>
> I'd commit it myself, but I don't want to step on any toes.
>
>
> --- dix/events.c
> +++ dix/events.c
> @@ -3420,7 +3420,6 @@ CheckPassiveGrabsOnWindow(
>     {
>        DeviceIntPtr    gdev;
>        XkbSrvInfoPtr   xkbi = NULL;
> -       Mask            mask = 0;
>
>        gdev= grab->modifierDevice;
>         if (grab->grabtype == GRABTYPE_CORE)
> @@ -3535,9 +3534,6 @@ CheckPassiveGrabsOnWindow(
>                 }
>                 xE = &core;
>                 count = 1;
> -                mask = grab->eventMask;
> -                if (grab->ownerEvents)
> -                    mask |= pWin->eventMask;
>             } else if (match & XI2_MATCH)
>             {
>                 rc = EventToXI2((InternalEvent*)event, &xE);
> @@ -3549,34 +3545,6 @@ CheckPassiveGrabsOnWindow(
>                     continue;
>                 }
>                 count = 1;
> -
> -                /* FIXME: EventToXI2 returns NULL for enter events, so
> -                 * dereferencing the event is bad. Internal event types
> are
> -                 * aligned with core events, so the else clause is valid.
> -                 * long-term we should use internal events for enter/focus
> -                 * as well */
> -                if (xE)
> -                    mask =
> grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
> -                else if (event->type == XI_Enter || event->type ==
> XI_FocusIn)
> -                    mask = grab->xi2mask[device->id][event->type/8];
> -
> -                if (grab->ownerEvents && wOtherInputMasks(grab->window))
> -                {
> -                    InputClientsPtr icp =
> -                        wOtherInputMasks(grab->window)->inputClients;
> -
> -                    while(icp)
> -                    {
> -                        if (rClient(icp) == rClient(grab))
> -                        {
> -                            int evtype = (xE) ?
> ((xGenericEvent*)xE)->evtype : event->type;
> -                            mask |= icp->xi2mask[device->id][evtype/8];
> -                            break;
> -                        }
> -
> -                        icp = icp->next;
> -                    }
> -                }
>             } else
>             {
>                 rc = EventToXI((InternalEvent*)event, &xE, &count);
> @@ -3587,23 +3555,6 @@ CheckPassiveGrabsOnWindow(
>                                 "(%d, %d).\n", device->name, event->type,
> rc);
>                     continue;
>                 }
> -                mask = grab->eventMask;
> -                if (grab->ownerEvents && wOtherInputMasks(grab->window))
> -                {
> -                    InputClientsPtr icp =
> -                        wOtherInputMasks(grab->window)->inputClients;
> -
> -                    while(icp)
> -                    {
> -                        if (rClient(icp) == rClient(grab))
> -                        {
> -                            mask |= icp->mask[device->id];
> -                            break;
> -                        }
> -
> -                        icp = icp->next;
> -                    }
> -                }
>             }
>
>            (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
> @@ -3612,7 +3563,8 @@ CheckPassiveGrabsOnWindow(
>             {
>                 FixUpEventFromWindow(device, xE, grab->window, None, TRUE);
>
> -                TryClientEvents(rClient(grab), device, xE, count, mask,
> +                TryClientEvents(rClient(grab), device, xE, count,
> +                                       GetEventFilter(device, xE),
>                                        GetEventFilter(device, xE), grab);
>             }
>
> --
> Christian "naddy" Weisgerber                          naddy at mips.inka.de
>
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org"
>


More information about the freebsd-x11 mailing list