Input: Reduce use of filter in DeliverEvents

Instead of switching on the event filter to determine delivery, use the
event type instead.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Daniel Stone 2011-02-15 11:28:01 +00:00 committed by Peter Hutterer
parent 8a0241656c
commit ea71495ada

View File

@ -2466,9 +2466,8 @@ int
DeliverEvents(WindowPtr pWin, xEvent *xE, int count, DeliverEvents(WindowPtr pWin, xEvent *xE, int count,
WindowPtr otherParent) WindowPtr otherParent)
{ {
Mask filter;
int deliveries;
DeviceIntRec dummy; DeviceIntRec dummy;
int deliveries;
#ifdef PANORAMIX #ifdef PANORAMIX
if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum) if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum)
@ -2479,11 +2478,42 @@ DeliverEvents(WindowPtr pWin, xEvent *xE, int count,
return 0; return 0;
dummy.id = XIAllDevices; dummy.id = XIAllDevices;
filter = GetEventFilter(&dummy, xE);
if ((filter & SubstructureNotifyMask) && (xE->u.u.type != CreateNotify)) switch (xE->u.u.type)
xE->u.destroyNotify.event = pWin->drawable.id; {
if (filter != StructureAndSubMask) case DestroyNotify:
return DeliverEventsToWindow(&dummy, pWin, xE, count, filter, NullGrab); case UnmapNotify:
case MapNotify:
case MapRequest:
case ReparentNotify:
case ConfigureNotify:
case ConfigureRequest:
case GravityNotify:
case CirculateNotify:
case CirculateRequest:
xE->u.destroyNotify.event = pWin->drawable.id;
break;
}
switch (xE->u.u.type)
{
case DestroyNotify:
case UnmapNotify:
case MapNotify:
case ReparentNotify:
case ConfigureNotify:
case GravityNotify:
case CirculateNotify:
break;
default:
{
Mask filter;
filter = GetEventFilter(&dummy, xE);
return DeliverEventsToWindow(&dummy, pWin, xE, count, filter,
NullGrab);
}
}
deliveries = DeliverEventsToWindow(&dummy, pWin, xE, count, deliveries = DeliverEventsToWindow(&dummy, pWin, xE, count,
StructureNotifyMask, NullGrab); StructureNotifyMask, NullGrab);
if (pWin->parent) if (pWin->parent)