[PATCH 4/5] Implement early touch reject

Chase Douglas chase.douglas at canonical.com
Thu Feb 2 21:42:02 PST 2012


On 02/03/2012 06:40 AM, Peter Hutterer wrote:
> On Thu, Feb 02, 2012 at 04:57:57PM -0800, Chase Douglas wrote:
>> From: Chase Douglas <chase.douglas at ubuntu.com>
>>
>> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
>> ---
>>  dix/touch.c |    9 ++++++++-
>>  1 files changed, 8 insertions(+), 1 deletions(-)
>>
>> diff --git a/dix/touch.c b/dix/touch.c
>> index e24d9ac..1faeb7c 100644
>> --- a/dix/touch.c
>> +++ b/dix/touch.c
>> @@ -1019,9 +1019,16 @@ AllowTouch(ClientPtr client, DeviceIntPtr dev, int mode, uint32_t touchid,
>>      if (i < ti->num_listeners)
>>          return BadAccess;
>>  
>> -    /* FIXME: Implement early accept/reject */
>>      if (i > 0)
>> +    {
>> +        if (mode == XIRejectTouch)
>> +        {
>> +            TouchRemoveListener(ti, ti->listeners[i].listener);
>> +            return Success;
> 
> We need to send a TouchEnd to the listener before we remove it.

No, that's how the protocol was written originally. You changed that :).
Now, when a client rejects it is done with the touch sequence. It is not
guaranteed to receive a TouchEnd event.

-- Chase


More information about the xorg-devel mailing list