feat(renaser): Fase 9 — orden-Z y ventanas flotantes
Segundo modelo de composición sobre el teselado de la Fase 8: el SOLAPAMIENTO. Una ventana puede abandonar el teselado y FLOTAR sobre las demás. - `Escritorio` gana `flotantes: Vec<usize>` — la pila orden-Z, de atrás hacia adelante; con `orden` forma una partición de las ventanas. - Mando `Flotar` (`Alt+F`): alterna la ventana enfocada entre teselada y flotante; una flotante nace con marco propio en cascada, al frente del orden-Z. - `compositor::recomponer` + `consola::recomponer` (tipos `Capa` / `Contenido`): con flotantes vivas el escritorio se repinta entero, capa a capa de atrás hacia adelante — el solapamiento se resuelve por el orden del pintado. Sin flotantes, camino rápido de la Fase 8. - El foco recorre todas las ventanas y alza al frente la flotante enfocada. Verificado en QEMU (sendkey): flotar, cascada, alzado-Z y regreso al teselado. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -760,3 +760,48 @@ identidad de las ventanas, y el teclado promueve y reordena.
|
||||
ventana maestra y `hola` baja a la pila; `Alt+L` la devuelve a la pila y
|
||||
`hola` recupera la maestra. El foco —el borde índigo— viaja siempre con la
|
||||
ventana, no con la celda.
|
||||
|
||||
## Fase 9 — Orden-Z y ventanas flotantes — 2026-05-22
|
||||
|
||||
Hasta la 8d el escritorio era TESELADO puro: las ventanas repartían la pantalla
|
||||
sin solaparse jamás. La Fase 9 introduce un segundo modelo de composición —el
|
||||
SOLAPAMIENTO—: una ventana puede abandonar el teselado y FLOTAR, con un marco
|
||||
propio y libre, por encima de las demás.
|
||||
|
||||
### Añadido
|
||||
- `Escritorio` gana `flotantes: Vec<usize>` — la pila de ventanas flotantes en
|
||||
orden-Z, de atrás hacia adelante; `flotantes.last()` es la frontal. Junto con
|
||||
`orden` forma una partición de las ventanas: cada una está teselada o flota,
|
||||
nunca en ambas ni en ninguna.
|
||||
- Mando `Flotar` (`Alt+F`): alterna la ventana enfocada entre teselada y
|
||||
flotante. Al flotar, abandona el teselado —que se recalcula para las que
|
||||
quedan—, recibe un marco propio (su lienzo natural más un reborde de cromo)
|
||||
colocado en CASCADA, y sube al frente del orden-Z. Al volver, se reincorpora
|
||||
al final del orden de teselado.
|
||||
- `compositor::recomponer` — recompone el escritorio entero de una pasada: arma
|
||||
la lista de capas (las teseladas al fondo; las flotantes encima, de atrás
|
||||
hacia adelante) y se la entrega a la consola.
|
||||
- `consola::recomponer` y los tipos `Capa` / `Contenido`: la consola funde las
|
||||
capas EN ORDEN sobre el lienzo; el solapamiento se resuelve por el orden del
|
||||
pintado, sin recortes ni máscaras. Una sola presentación cierra la pasada.
|
||||
- `consola::componer_fotograma` — el volcado de un fotograma natural centrado
|
||||
en su marco, extraído de `volcar_marco` para compartirlo entre el camino
|
||||
rápido y la recomposición.
|
||||
|
||||
### Cambiado
|
||||
- `presentar_fotograma` y `desalojar` bifurcan: sin ventanas flotantes
|
||||
conservan el camino RÁPIDO de la Fase 8 —pintar sólo la ventana que cambia—;
|
||||
con flotantes vivas recomponen el escritorio entero respetando el orden-Z.
|
||||
- `mover_foco` recorre ahora TODAS las ventanas —las teseladas y las
|
||||
flotantes—; al enfocar una flotante, la alza al frente del orden-Z: la
|
||||
flotante con el foco está siempre delante.
|
||||
- `componer_escenario`, `ciclar_layout`, `promover` y `mover_ventana` delegan
|
||||
el repintado en `recomponer`; desaparecen `redibujar_todo`,
|
||||
`redibujar_ventana` y `pintar_escenario`.
|
||||
|
||||
### Verificado
|
||||
- QEMU (`sendkey`): `Alt+F` saca la ventana maestra del teselado y la deja
|
||||
flotando sobre las demás, que se re-teselan. Un segundo `Alt+F` sobre otra
|
||||
ventana la flota en cascada, solapando a la primera. `Alt+K` devuelve el foco
|
||||
a la ventana grande y ésta sube al frente, tapando por completo a la pequeña.
|
||||
Un `Alt+F` final la reintegra al teselado.
|
||||
|
||||
Reference in New Issue
Block a user