summaryrefslogtreecommitdiff
path: root/src/synaptics.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/synaptics.c')
-rw-r--r--src/synaptics.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/synaptics.c b/src/synaptics.c
index 282ced7..6eb3ff8 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1763,7 +1763,8 @@ SelectTapButton(SynapticsPrivate * priv, enum EdgeType edge)
{
enum TapEvent tap;
- if (priv->synpara.touchpad_off == TOUCHPAD_TAP_OFF) {
+ if (priv->synpara.touchpad_off == TOUCHPAD_TAP_OFF ||
+ priv->synpara.touchpad_off == TOUCHPAD_CLICK_ONLY) {
priv->tap_button = 0;
return;
}
@@ -2302,7 +2303,9 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw,
SynapticsParameters *para = &priv->synpara;
int delay = 1000000000;
- if ((priv->synpara.touchpad_off == TOUCHPAD_TAP_OFF) || (priv->finger_state == FS_BLOCKED)) {
+ if ((priv->synpara.touchpad_off == TOUCHPAD_TAP_OFF) ||
+ (priv->synpara.touchpad_off == TOUCHPAD_CLICK_ONLY) ||
+ (priv->finger_state == FS_BLOCKED)) {
stop_coasting(priv);
priv->circ_scroll_on = FALSE;
priv->vert_scroll_edge_on = FALSE;
@@ -2909,6 +2912,9 @@ HandleTouches(InputInfoPtr pInfo, struct SynapticsHwState *hw)
Bool restart_touches = FALSE;
int i;
+ if (para->touchpad_off == TOUCHPAD_CLICK_ONLY)
+ goto out;
+
if (para->click_action[F3_CLICK1] || para->tap_action[F3_TAP])
min_touches = 4;
else if (para->click_action[F2_CLICK1] || para->tap_action[F2_TAP] ||
@@ -3130,7 +3136,8 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now,
}
/* Post events */
- if (finger >= FS_TOUCHED && (dx || dy))
+ if (finger >= FS_TOUCHED && (dx || dy) &&
+ (para->touchpad_off != TOUCHPAD_CLICK_ONLY))
xf86PostMotionEvent(pInfo->dev, 0, 0, 2, dx, dy);
if (priv->mid_emu_state == MBE_LEFT_CLICK) {