File xf86-input-synaptics-move-threshold.diff of Package xorg-x11-driver-input
---
src/synaptics.c | 10 ++++++++++
src/synapticsstr.h | 1 +
2 files changed, 11 insertions(+)
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -458,6 +458,8 @@
edgeMotionMaxSpeed = diag * .080;
accelFactor = 200.0 / diag; /* trial-and-error */
+ priv->move_ptr_threshold = width / 5;
+
range = priv->maxp - priv->minp;
/* scaling based on defaults and a pressure of 256 */
@@ -1923,6 +1925,14 @@
break;
}
}
+
+ if (moving_state && priv->count_packet_finger > 0 &&
+ priv->move_ptr_threshold > 0 ) {
+ int d = move_distance(HIST(0).x - hw->x, HIST(0).y - hw->y);
+ if (d > priv->move_ptr_threshold)
+ priv->count_packet_finger = 0; /* to avoid unexpected jumps */
+ }
+
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 &&
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -245,6 +245,7 @@
unsigned int clickpad_threshold;
int clickpad_dx, clickpad_dy;
struct SynapticsHwState prev_hw; /* previous h/w state (for clickpad) */
+ int move_ptr_threshold;
int prop_change_pending;
Bool led_touch_state;
Bool led_tapped;