ButtonPress y ButtonRelease
Los eventos de botón del ratón en X11, que además transportan la rueda desde que se la disfrazó de botones 4 y 5.
El evento lleva el número de botón, el estado de los modificadores, una marca de tiempo y la posición del puntero respecto a la ventana y a la ventana raíz. El protocolo base cuenta con cinco botones. Cuando llegaron las ruedas a finales de los 90 no había hueco para ellas, así que XFree86 hizo pasar la rueda arriba y abajo por los botones 4 y 5, pulsados y soltados en rápida sucesión. La convención aguantó más de una década, hasta que XInput 2.1 dio al desplazamiento suave un canal propio.
Dos rarezas separan el ratón del teclado. Un ButtonPress inicia automáticamente un grab activo que dura hasta que se sueltan todos los botones, de modo que un arrastre que sale de la ventana se sigue notificando a donde empezó. Y solo un cliente a la vez puede seleccionar ButtonPressMask en una ventana dada; el segundo recibe BadAccess.