On Thu, Jan 05, 2012 at 04:43:40PM -0800, Chase Douglas wrote:
> From: Chase Douglas <[email protected]>
> 
> The current code short-circuits around the block that removes the
> rejecting listener if it is the only listener left. It also does not
> delete the touchpoint record if the touch has not physically ended.
> 
> This change ensures the listener is removed under these circumstances.
> 
> Signed-off-by: Chase Douglas <[email protected]>

applied, thanks.
 
Cheers,
  Peter
> ---
>  Xi/exevents.c |   14 ++++++--------
>  1 files changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/Xi/exevents.c b/Xi/exevents.c
> index b3b05f7..6b2db4b 100644
> --- a/Xi/exevents.c
> +++ b/Xi/exevents.c
> @@ -1159,13 +1159,11 @@ TouchEventRejected(DeviceIntPtr sourcedev, 
> TouchPointInfoPtr ti,
>              DeliverTouchEvents(sourcedev, ti, tel + i, ev->resource);
>      }
>  
> -    /* If there are no other listeners left, then don't bother sending an
> -     * ownership change event to no-one; if the touchpoint is pending
> +    /* If there are no other listeners left, and the touchpoint is pending
>       * finish, then we can just kill it now. */
> -    if (ti->num_listeners == 1)
> +    if (ti->num_listeners == 1 && ti->pending_finish)
>      {
> -        if (ti->pending_finish)
> -            TouchEndTouch(sourcedev, ti);
> +        TouchEndTouch(sourcedev, ti);
>          goto out;
>      }
>  
> @@ -1178,9 +1176,9 @@ TouchEventRejected(DeviceIntPtr sourcedev, 
> TouchPointInfoPtr ti,
>              ti->num_grabs--;
>      }
>  
> -    /* If the current owner was removed, deliver the TouchOwnership or 
> TouchBegin
> -       event to the new owner. */
> -    if (was_owner)
> +    /* If the current owner was removed and there are further listeners, 
> deliver
> +     * the TouchOwnership or TouchBegin event to the new owner. */
> +    if (ti->num_listeners > 0 && was_owner)
>          TouchPuntToNextOwner(sourcedev, ti, ev);
>  
>  out:
> -- 
> 1.7.7.3

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to