[PATCH synaptics] Reset X/Y hist if the date is set back

Peter Hutterer peter.hutterer at who-t.net
Sun Dec 19 23:28:53 PST 2010


On Sun, Dec 19, 2010 at 05:04:51PM +0100, Alberto Milone wrote:
> Hi all,
> 
> The attached patch solves a problem that causes the touchpad cursor to
> freeze after setting the date back. The full description is available
> in the patch.
> 
> Regards,
> 
> -- 
> Alberto Milone
> Sustaining Engineer (system)
> Premium Engagements Team
> Canonical OEM Services

> From f3399a956a2ebb90c11600163f380b9eee44b2ba Mon Sep 17 00:00:00 2001
> From: Alberto Milone <alberto.milone at canonical.com>
> Date: Sun, 19 Dec 2010 16:46:19 +0100
> Subject: [PATCH 1/1] Reset X/Y hist if the date is set back
> 
> Setting the date back, even by one day, will cause the deltas
> to be negative, thus making the cursor freeze. Resetting the X/Y
> history when the current timestamp is smaller than the previous
> one solves the problem.
> 
> Signed-off-by: Alberto Milone <alberto.milone at canonical.com>
> ---
>  src/synaptics.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/src/synaptics.c b/src/synaptics.c
> index f64a081..be7a45e 100644
> --- a/src/synaptics.c
> +++ b/src/synaptics.c
> @@ -1754,7 +1754,8 @@ ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
>      if (inside_area && moving_state && !priv->palm &&
>  	!priv->vert_scroll_edge_on && !priv->horiz_scroll_edge_on &&
>  	!priv->vert_scroll_twofinger_on && !priv->horiz_scroll_twofinger_on &&
> -	!priv->circ_scroll_on && priv->prevFingers == hw->numFingers) {
> +	!priv->circ_scroll_on && priv->prevFingers == hw->numFingers &&
> +	hw->millis > HIST(0).millis) {

shouldn't we reset the history in this case too? it is invalid after all
(not sure if it has an effect though)

Cheers,
  Peter


>  	/* FIXME: Wtf?? what's with 13? */
>  	delay = MIN(delay, 13);
>  	if (priv->count_packet_finger > 3) { /* min. 3 packets */
> -- 
> 1.7.1
> 



More information about the xorg-devel mailing list