mirror of
https://github.com/X11Libre/xf86-input-synaptics.git
synced 2026-04-14 11:54:16 +00:00
When doing tap, drag and double tap processing, the buttons
not involved in the tapping was considered released, even if the corresponding physical button was pressed. This generated a bogus button release event when the tap processing started and a bogus button press event when the tap processing ended.
This commit is contained in:
18
synaptics.c
18
synaptics.c
@@ -607,25 +607,25 @@ ReadInput(LocalDevicePtr local)
|
||||
/* tap processing */
|
||||
if(priv->tap &&
|
||||
(DIFF_TIME(priv->count_packet, priv->count_packet_tapping) < para->tap_time)) {
|
||||
left = priv->tap_left;
|
||||
mid = priv->tap_mid;
|
||||
right = priv->tap_right;
|
||||
left |= priv->tap_left;
|
||||
mid |= priv->tap_mid;
|
||||
right |= priv->tap_right;
|
||||
} else {
|
||||
priv->tap = FALSE;
|
||||
}
|
||||
|
||||
/* drag processing */
|
||||
if(priv->drag) {
|
||||
left = priv->tap_left;
|
||||
mid = priv->tap_mid;
|
||||
right = priv->tap_right;
|
||||
left |= priv->tap_left;
|
||||
mid |= priv->tap_mid;
|
||||
right |= priv->tap_right;
|
||||
}
|
||||
|
||||
/* double tap processing */
|
||||
if(priv->doubletap && !priv->finger_flag) {
|
||||
left = priv->tap_left;
|
||||
mid = priv->tap_mid;
|
||||
right = priv->tap_right;
|
||||
left |= priv->tap_left;
|
||||
mid |= priv->tap_mid;
|
||||
right |= priv->tap_right;
|
||||
priv->doubletap = FALSE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user