feat(mirada): puntero/ratón en el backend DRM del compositor
El backend DRM del Cuerpo deja de ser sólo-teclado: `libinput` ahora mueve un cursor de software y reenvía clics y rueda a los clientes. - Enum `Frame` (vía `render_elements!`) que mezcla superficies de cliente y un `SolidColorRenderElement` para el cursor, marcado `Kind::Cursor` y compuesto encima de todo. - `handle_input` atiende `PointerMotion`/`PointerMotionAbsolute`/ `PointerButton`/`PointerAxis`; el puntero se acota a la salida. - Foco-sigue-ratón: `window_at` hace el test de impacto (flotantes sobre teseladas, contra el rectángulo real de la superficie) y, al cambiar de ventana, emite `BodyEvent::PointerEntered`. - `surface_px_size` en main.rs — tamaño presentado de una superficie, reusado por el test de impacto. Compila + clippy limpio; pendiente de verificar en hardware. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -195,14 +195,18 @@ Cerebro: **autónomo** (`Desktop` embebido) o **enlazado** (`MIRADA_SOCKET`
|
||||
- **`winit`** — corre anidado, una ventana en la sesión gráfica actual.
|
||||
- **`drm`** (`drm_backend.rs`) — corre nativo sobre una TTY, sin sesión
|
||||
anfitriona: `libseat` (sesión), `udev` (GPU), `DrmDevice` + GBM + EGL +
|
||||
`DrmCompositor`, `libinput` (teclado), bucle `calloop`. Verificado en
|
||||
hardware: sesión, render, teclado, atajos, clientes, salida limpia.
|
||||
`DrmCompositor`, `libinput` (teclado y ratón), bucle `calloop`.
|
||||
Verificado en hardware: sesión, render, teclado, atajos, clientes,
|
||||
salida limpia. El ratón pinta un cursor de software (un
|
||||
`SolidColorRenderElement` marcado `Kind::Cursor`, encima de todo en un
|
||||
enum `Frame` de elementos de render); el foco sigue al puntero
|
||||
(`BodyEvent::PointerEntered`) y clics y rueda van a la ventana debajo.
|
||||
|
||||
**Pendiente** — refinamientos del Cuerpo:
|
||||
|
||||
| capa pendiente | rol |
|
||||
| ---------------- | ------------------------------------------------------------ |
|
||||
| puntero en `drm` | ratón/touchpad por `libinput` (hoy el backend DRM sólo teclado) |
|
||||
| puntero en `winit` | ratón en el backend anidado (hoy sólo el backend DRM) |
|
||||
| `mirada-input` | repetición de teclas, gestos; conmutación de VT, hotplug |
|
||||
| `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user