feat(mirada): marco de ventana — distinguir y resaltar el foco
Sin decoración, las ventanas se confundían entre sí. Ahora el backend DRM dibuja un marco fino alrededor de cada ventana: azul la que tiene el foco del teclado, gris las demás. - `ManagedWindow` gana `focused: bool` (lo fija `exec_op` al atender `BodyOp::Focus`/`Unfocus`) y `borders: [SolidColorBuffer; 4]` — un búfer por lado, cada uno con su `Id` estable para el seguimiento de daño; `SolidColorBuffer` sube su contador sólo si tamaño o color cambian, así un marco quieto no fuerza recomposición. - El enum `Frame` pasa de `Cursor` a `Solid`: una variante de color sólido que sirve para el cursor y para los marcos (dos variantes con el mismo tipo chocarían en el `From` que genera `render_elements!`). - `render()` en dos pasos: refresca los búferes (tamaño = contenido, color = foco) y luego arma los elementos. El marco va metido hacia adentro, sobre el borde de la superficie, así no pisa al vecino. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1002,6 +1002,7 @@
|
||||
cargo run -p mirada-compositor -- --drm # nativo sobre TTY (MIRADA_STARTUP=foot lanza un cliente al arrancar)
|
||||
Habla wl_compositor/xdg_shell/wl_shm/wl_seat/wl_data_device; compone con GlesRenderer. Reusa mirada-body y mirada-link.
|
||||
En --drm el ratón pinta un cursor de software, el foco sigue al puntero y clics/rueda van a la ventana debajo.
|
||||
Cada ventana lleva un marco fino: azul la enfocada, gris las demás.
|
||||
Super+arrastre mueve la ventana (botón izq.) o la redimensiona (der.) — al arrastrarla pasa a flotar.
|
||||
Fuerza xdg-decoration ServerSide y no dibuja marco: las ventanas teseladas van sin barra de título.
|
||||
Lanzar programas: acción spawn:<comando> del keymap (Super+Shift+Return → spawn:foot por defecto).
|
||||
|
||||
Reference in New Issue
Block a user