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);
_______________________________________________
[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