On Thu, Feb 09, 2012 at 06:53:01PM -0800, Chase Douglas wrote:
> Signed-off-by: Chase Douglas <[email protected]>
> ---
>  src/synaptics.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/src/synaptics.c b/src/synaptics.c
> index 662e060..473ce13 100644
> --- a/src/synaptics.c
> +++ b/src/synaptics.c
> @@ -1889,10 +1889,13 @@ HandleTapProcessing(SynapticsPrivate *priv, struct 
> SynapticsHwState *hw,
>           hw->left = 0;
>       break;
>      case TS_CLICKPAD_MOVE:
> +     if (hw->numFingers > 1)
> +         hw->numFingers--;
>       SetMovingState(priv, MS_TOUCHPAD_RELATIVE, now);
>       if (!hw->left && !hw->right && !hw->middle) {
>           SetMovingState(priv, MS_FALSE, now);
>           SetTapState(priv, TS_MOVE, now);
> +         priv->count_packet_finger = 0;
>       }
>       break;
>      }
> @@ -2777,6 +2780,14 @@ HandleState(InputInfoPtr pInfo, struct 
> SynapticsHwState *hw, CARD32 now,
>      if (para->touchpad_off == 1)
>       return delay;
>  
> +    /* If a physical button is pressed on a clickpad, use cumulative touch
> +     * movements for motion */
> +    if (para->clickpad && (hw->left || hw->right || hw->middle))
> +    {
> +        hw->x = hw->cumulative_dx;
> +        hw->y = hw->cumulative_dy;
> +    }
> +

help me out here: hw->x is absolute, but hw->cumulative_dx is relative. how
do we deal with this?

Cheers,
  Peter

>      /* apply hysteresis before doing anything serious. This cancels
>       * out a lot of noise which might surface in strange phenomena
>       * like flicker in scrolling or noise motion. */
> -- 
> 1.7.8.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