On 04/29/2012 07:52 PM, Peter Hutterer wrote:
> A suspend-induced device disable may happen before the device gets to see
> the button release event. On resume, the server's internal state still has
> some buttons pressed, causing inconsistent behaviour.
> 
> Force the release and the matching events to be sent to the client.
> 
> Signed-off-by: Peter Hutterer <[email protected]>
> ---
>  dix/devices.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/dix/devices.c b/dix/devices.c
> index 600f8b7..7f38865 100644
> --- a/dix/devices.c
> +++ b/dix/devices.c
> @@ -437,6 +437,7 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
>      if (*prev != dev)
>          return FALSE;
>  
> +    ReleaseButtonsAndKeys(dev);
>      SyncRemoveDeviceIdleTime(dev->idle_counter);
>      dev->idle_counter = NULL;
>  

Looks good to me.

Reviewed-by: Chase Douglas <[email protected]>
_______________________________________________
[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