Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- dix/events.c | 38 +++++++++++++++++++++++--------------- 1 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/dix/events.c b/dix/events.c index 3f7cc6f..7885e86 100644 --- a/dix/events.c +++ b/dix/events.c @@ -176,12 +176,20 @@ typedef const char *string; #define AllEventMasks (LastEventMask|(LastEventMask-1)) -#define CORE_EVENT(event) \ - (!((event)->u.u.type & EXTENSION_EVENT_BASE) && \ - (event)->u.u.type != GenericEvent) -#define XI2_EVENT(event) \ - (((event)->u.u.type == GenericEvent) && \ - ((xGenericEvent*)(event))->extension == IReqCode) +static inline BOOL +is_core_event(const xEvent *event) +{ + return !(event->u.u.type & EXTENSION_EVENT_BASE) && + event->u.u.type != GenericEvent; +} + +static inline BOOL +is_xi2_event(const xEvent *event) +{ + return (event->u.u.type == GenericEvent) && + ((xGenericEvent*)event)->extension == IReqCode; +} + /** * Used to indicate a implicit passive grab created by a ButtonPress event. @@ -416,7 +424,7 @@ GetEventFilter(DeviceIntPtr dev, xEvent *event) { if (event->u.u.type != GenericEvent) return filters[dev ? dev->id : 0][event->u.u.type]; - else if (XI2_EVENT(event)) + else if (is_xi2_event(event)) return (1 << (((xXIDeviceEvent*)event)->evtype % 8)); ErrorF("[dix] Unknown device type %d. No filter\n", event->u.u.type); return 0; @@ -432,7 +440,7 @@ GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev) int filter; int evtype; - if (!inputMasks || !XI2_EVENT(ev)) + if (!inputMasks || !is_xi2_event(ev)) return 0; evtype = ((xGenericEvent*)ev)->evtype; @@ -447,13 +455,13 @@ Mask GetEventMask(DeviceIntPtr dev, xEvent *event, InputClients* other) { /* XI2 filters are only ever 8 bit, so let's return a 8 bit mask */ - if (XI2_EVENT(event)) + if (is_xi2_event(event)) { int byte = ((xGenericEvent*)event)->evtype / 8; return (other->xi2mask[dev->id][byte] | other->xi2mask[XIAllDevices][byte] | (IsMaster(dev)? other->xi2mask[XIAllMasterDevices][byte] : 0)); - } else if (CORE_EVENT(event)) + } else if (is_core_event(event)) return other->mask[XIAllDevices]; else return other->mask[dev->id]; @@ -1994,9 +2002,9 @@ DeliverEventToClients(DeviceIntPtr dev, WindowPtr win, xEvent *events, enum EventDeliveryState rc = EVENT_SKIP; InputClients *other; - if (CORE_EVENT(events)) + if (is_core_event(events)) other = (InputClients *)wOtherClients(win); - else if (XI2_EVENT(events)) + else if (is_xi2_event(events)) { OtherInputMasks *inputMasks = wOtherInputMasks(win); /* Has any client selected for the event? */ @@ -2097,7 +2105,7 @@ IsButtonPressEvent(xEvent *pEvents) { int type = pEvents->u.u.type; - if (((XI2_EVENT(pEvents) && ((xGenericEvent*)pEvents)->evtype == XI_ButtonPress)) || + if (((is_xi2_event(pEvents) && ((xGenericEvent*)pEvents)->evtype == XI_ButtonPress)) || type == DeviceButtonPress || type == ButtonPress) return TRUE; else @@ -2135,7 +2143,7 @@ DeliverEventsToWindow(DeviceIntPtr pDev, WindowPtr pWin, xEvent int type = pEvents->u.u.type; /* Deliver to window owner */ - if ((filter == CantBeFiltered) || CORE_EVENT(pEvents)) + if ((filter == CantBeFiltered) || is_core_event(pEvents)) { enum EventDeliveryState rc; @@ -2328,7 +2336,7 @@ FixUpEventFromWindow( if (calcChild) child = FindChildForEvent(pSprite, pWin); - if (XI2_EVENT(xE)) + if (is_xi2_event(xE)) { xXIDeviceEvent* event = (xXIDeviceEvent*)xE; -- 1.7.4.4 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel