Cada gesto en el touchpad pasa por al menos cuatro capas distintas antes de activar una acción en pantalla — y cada capa puede cambiar el significado de ese gesto. No entender bien estas capas es la razón por la que algunos touchpads se sienten lentos, por qué los gestos desaparecen tras una actualización del controlador, y por qué una aplicación web puede detectar un desplazamiento pero no un pellizco. Comprender esta cadena lo aclara todo.
Capa 1: el hardware y firmware de detección
La superficie del touchpad está cubierta por una cuadrícula de electrodos capacitivos. Cuando un dedo se acerca, altera el campo eléctrico entre las filas y columnas de esa cuadrícula, y el chip controlador del touchpad mide esas perturbaciones muchas veces por segundo — al menos 100 veces por segundo según la especificación de Windows Precision Touchpad, llegando a 125 Hz para un contacto único. El chip convierte las lecturas brutas de capacitancia en una lista de objetos de contacto: cada uno recibe un par de coordenadas (x, y), un área de contacto estimada y un ID de contacto que persiste mientras ese dedo permanezca sobre la superficie.
Esta etapa del firmware es completamente una traducción analógica a digital. El chip no sabe qué es un "deslizamiento" o un "toque". Solo sabe que el contacto con ID 2 está actualmente en (381, 204) y estuvo en (376, 204) en la exploración anterior. Ese flujo bruto es lo que viaja por el bus USB o I2C hacia el sistema operativo.

Capa 2: el informe HID y el motor de gestos del sistema operativo
En un Windows Precision Touchpad (PTP), el firmware empaqueta la lista de contactos de cada exploración en un informe HID (Dispositivo de Interfaz Humana) estandarizado y lo envía a Windows. Windows recibe los contactos en bruto — no eventos interpretados — y su propio motor de gestos (parte de la pila de entrada en hidclass.sys y el controlador de touchpad de precisión) realiza todo el trabajo de reconocimiento. Esta es la división arquitectónica que hace que los Precision Touchpads se comporten de forma consistente entre marcas: la interpretación reside en el sistema operativo, no en el firmware del fabricante.
En un touchpad estándar (heredado), esa división no existe. El controlador del fabricante — Synaptics, Elan o ALPS — procesa los datos brutos de capacitancia por sí mismo y entrega a Windows solo eventos terminados al estilo ratón: cursor movido, botón presionado, delta de desplazamiento. Windows nunca ve los contactos individuales.
El motor de gestos del sistema operativo aplica sus reglas de clasificación sobre los contactos brutos que recibe:
- Detección de toque — un contacto que aparece, se mueve menos que una distancia umbral y desaparece rápidamente se clasifica como toque. El movimiento máximo antes de que un contacto sea descalificado como toque, deslizamiento o pulsación larga es una distancia pequeña en unidades físicas; el sistema operativo la mapea a píxeles en pantalla según las dimensiones reportadas del touchpad.
- Desplazamiento con dos dedos — dos contactos que se mueven en la misma dirección a velocidad comparable producen eventos delta de desplazamiento, no movimiento del puntero. El sistema operativo los reenvía como eventos de rueda a la ventana que tenga el foco.
- Gestos con tres y cuatro dedos — se dirigen directamente a acciones del shell de Windows (equivalente a Mission Control, escritorios virtuales) o son interceptados por aplicaciones que se registran para ellos mediante la API de gestos de Windows.
- Rechazo de palma — los contactos que llegan desde las zonas de borde del touchpad, o que coinciden con actividad del teclado, se suprimen antes de que se ejecute cualquier lógica de gestos (esto se trata por separado bajo rechazo de palma).
Capa 3: el modelo de eventos del navegador
Cuando un gesto llega a una página web, ya ha sido procesado dos veces — una por el firmware y otra por el sistema operativo. El navegador recibe solo los eventos que Windows decidió reenviar. Para un Precision Touchpad, esos son PointerEvents con un pointerType de "mouse" para movimiento de contacto único, además de WheelEvents para desplazamiento con dos dedos y pellizco para zoom. El navegador nunca ve los contactos individuales de dedos de un touchpad de escritorio — esos datos brutos permanecen dentro de la capa del sistema operativo.
Esto significa que los gestos que una página web puede detectar desde un touchpad son estructuralmente diferentes de los que envía una pantalla táctil. Una pantalla táctil entrega contactos individuales como eventos pointerType: "touch", y una página puede implementar su propia lógica de pellizco rastreando la distancia entre dos punteros simultáneos. Un touchpad entrega un delta de zoom precomputado como un WheelEvent con ctrlKey: true — no se requiere cálculo de dos punteros en el lado web.
Capa 4: los propios umbrales de la aplicación
Las aplicaciones — incluyendo JavaScript que se ejecuta en un navegador — aplican una capa final de clasificación sobre los eventos que reciben. El probador arriba ilustra esto concretamente: su motor de gestos define un UMBRAL_TOQUE de 10 px — si un puntero se mueve más de 10 píxeles entre pointerdown y pointerup, queda descalificado como toque. Un UMBRAL_PULSACION_LARGA de 500 ms se activa si el contacto se mantiene ese tiempo sin moverse más allá del límite de 10 px. Un UMBRAL_DOBLE_TOQUE de 300 ms significa que dos toques deben ocurrir dentro de 300 milisegundos para contar como doble toque. Los deslizamientos requieren tanto una distancia mínima de 50 px como una velocidad mínima de 0.5 px/ms, para que arrastres lentos no se clasifiquen erróneamente como deslizamientos.
Estos umbrales existen en cada capa de la cadena. Un gesto que supera el filtro de área de contacto del firmware, pasa la comprobación de distancia de movimiento del sistema operativo y aún produce la secuencia correcta de eventos en el navegador puede ser rechazado por la aplicación si no cumple con sus propios límites de tiempo o distancia. Ajustar una capa sin considerar las demás es la razón por la que la sensibilidad de los gestos puede sentirse incorrecta incluso después de una actualización del controlador que no cambia nada visible para el usuario.
Por qué el modelo en capas es importante para el diagnóstico
Cuando un gesto deja de funcionar, el modelo en capas te señala al sospechoso correcto. Si ningún gesto funciona — ni siquiera el toque simple — el problema está en la capa 1 (hardware) o en la capa 2 temprana (controlador no cargado). Si el desplazamiento con dos dedos funciona pero el deslizamiento con tres dedos no, el motor de gestos del sistema operativo está recibiendo contactos pero una regla específica de gestos ha cambiado — revisa la configuración de Windows para gestos deshabilitados. Si el desplazamiento funciona en aplicaciones nativas pero no en un sitio web específico, el problema está en los manejadores de eventos de la aplicación, no en el controlador. Las directrices de ajuste para Precision Touchpad de Microsoft documentan los valores del registro que controlan los umbrales de la capa del sistema operativo, haciendo posible ajustar la sensibilidad sin tocar el firmware.
Compruébalo tú mismo: la herramienta arriba registra cada evento de puntero y rueda que recibe el navegador, y su panel de Detección de Gestos aplica sus propias reglas de umbral sobre esos eventos. Si la capa del sistema operativo está reenviando contactos correctamente, verás toques, dobles toques y pulsaciones largas registrarse en el panel — cada uno representando un gesto que sobrevivió todas las capas de la cadena desde la cuadrícula capacitiva hasta la aplicación del navegador.