[PATCH synaptics] Reanimate dead trackpad area while gesturing
Daniel Colascione
dancol at dancol.org
Mon Oct 28 02:08:01 CET 2013
This patch changes the interpretation of the "dead area" described by
the AreaXXXEdge parameters. Now, instead of ignoring all events from
these areas, we ignore only gesture initiations. That is, tapping on a
dead area does nothing, but tapping somewhere else and moving the
pressed finger into the dead area makes the dead area temporarily live.
This change makes it more practical to mark some areas of my clickpad as
dead for spurious-motion-avoidance purpose.
So far, it works fine for me when I try movement, scrolling, and dragging.
Index: src/synaptics.c
===================================================================
--- src/synaptics.c 2013-10-27 17:29:59.700615305 -0700
+++ src/synaptics.c 2013-10-27 17:44:59.608587105 -0700
@@ -2829,6 +2829,11 @@
inside_active_area = is_inside_active_area(priv, hw->x, hw->y);
+ /* if we're gesticulating, consider the whole trackpad to be the
+ * active area */
+ if (priv->tap_state != TS_START)
+ inside_active_area = TRUE;
+
/* these two just update hw->left, right, etc. */
update_hw_button_state(pInfo, hw, priv->old_hw_state, now, &delay);
@@ -2836,13 +2841,9 @@
invalid are: x, y, z, numFingers, fingerWidth
valid are: millis, left/right/middle/up/down/etc.
*/
- if (!inside_active_area) {
+ if (!inside_active_area)
reset_hw_state(hw);
- /* FIXME: if finger accidentally moves into the area and doesn't
- * really release, the finger should remain down. */
- }
-
/* no edge or finger detection outside of area */
if (inside_active_area) {
edge = edge_detection(priv, hw->x, hw->y);
More information about the xorg-devel
mailing list