From 93c33403642a3de3c9d141ad7940a7b880846aad Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Wed, 4 Apr 2012 12:59:55 -0700 Subject: [PATCH] Only set XI2 mask if pointer emulation is for XI2 client The current code returns a reference to memory that may not actually be an XI2 mask. Instead, only return a value when an XI2 client has selected for events. Signed-off-by: Chase Douglas Reviewed-by: Jeremy Huddleston Acked-by: Peter Hutterer --- Xi/exevents.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 7da80aaeb..ab2f044d9 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1327,6 +1327,7 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, { int rc; InputClients *iclients = NULL; + *mask = NULL; if (listener->type == LISTENER_GRAB || listener->type == LISTENER_POINTER_GRAB) { @@ -1378,6 +1379,7 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, if (!iclients) return FALSE; + *mask = iclients->xi2mask; *client = rClient(iclients); } else if (listener->level == XI) { @@ -1409,7 +1411,6 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, *client = oclients ? rClient(oclients) : wClient(*win); } - *mask = iclients ? iclients->xi2mask : NULL; *grab = NULL; }