[PATCH 4/5] dix: switch EventIsDeliverable to take the event type only
walter harms
wharms at bfs.de
Sat Dec 10 04:50:21 PST 2011
Am 10.12.2011 08:54, schrieb Peter Hutterer:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> dix/events.c | 12 ++++++------
> include/input.h | 3 +--
> 2 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/dix/events.c b/dix/events.c
> index 828b143..309db9e 100644
> --- a/dix/events.c
> +++ b/dix/events.c
> @@ -2532,27 +2532,27 @@ FixUpEventFromWindow(
> * client.
> *
> * @param[in] dev The device this event is being sent for.
> - * @param[in] event The event that is to be sent.
> + * @param[in] evtype The event type of the event that is to be sent.
> * @param[in] win The current event window.
> *
> * @return Bitmask of ::EVENT_XI2_MASK, ::EVENT_XI1_MASK, ::EVENT_CORE_MASK, and
> * ::EVENT_DONT_PROPAGATE_MASK.
> */
> int
> -EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event, WindowPtr win)
> +EventIsDeliverable(DeviceIntPtr dev, int evtype, WindowPtr win)
> {
> int rc = 0;
> int filter = 0;
> int type;
> OtherInputMasks *inputMasks = wOtherInputMasks(win);
>
> - if ((type = GetXI2Type(event->any.type)) != 0)
> + if ((type = GetXI2Type(evtype)) != 0)
> {
> if (inputMasks && xi2mask_isset(inputMasks->xi2mask, dev, type))
> rc |= EVENT_XI2_MASK;
> }
>
> - if ((type = GetXIType(event->any.type)) != 0)
> + if ((type = GetXIType(evtype)) != 0)
> {
> filter = GetEventFilterMask(dev, type);
>
> @@ -2568,7 +2568,7 @@ EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event, WindowPtr win)
>
> }
>
> - if ((type = GetCoreType(event->any.type)) != 0)
> + if ((type = GetCoreType(evtype)) != 0)
> {
> filter = GetEventFilterMask(dev, type);
>
> @@ -2667,7 +2667,7 @@ DeliverDeviceEvents(WindowPtr pWin, InternalEvent *event, GrabPtr grab,
>
> while (pWin)
> {
> - if ((mask = EventIsDeliverable(dev, event, pWin)))
> + if ((mask = EventIsDeliverable(dev, event->any.type, pWin)))
The readability suffers here. personally i prefer the
mask = EventIsDeliverable(dev, event->any.type, pWin);
if (mask == 0 )
style. (no idea what the X11-policy is here). but when i see
if ( .. foo=bar ... ) a red light shows up for me ....
just a hint, the code seems the same.
re,
wh
> {
> /* XI2 events first */
> if (mask & EVENT_XI2_MASK)
> diff --git a/include/input.h b/include/input.h
> index 7c5ad3c..fb24fd5 100644
> --- a/include/input.h
> +++ b/include/input.h
> @@ -552,8 +552,7 @@ void FixUpEventFromWindow(SpritePtr pSprite,
> Window child,
> Bool calcChild);
> extern WindowPtr XYToWindow(SpritePtr pSprite, int x, int y);
> -extern int EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event,
> - WindowPtr win);
> +extern int EventIsDeliverable(DeviceIntPtr dev, int evtype, WindowPtr win);
> extern Bool ActivatePassiveGrab(DeviceIntPtr dev, GrabPtr grab,
> InternalEvent *ev);
> /**
More information about the xorg-devel
mailing list