feat(renaser): Fase 14 — identidad del escritorio (nombres + barra de tareas)
Las ventanas eran anónimas: el escritorio no sabía nombrar lo que mostraba. Esta fase le pone un nombre a cada cuarto y una barra al pie con la lista de quienes lo habitan. - Cada `Ventana` lleva un `nombre: String` —del manifiesto, o del orquestador al engendrarla en vivo—. `Plantilla` lo guarda para las copias que `Alt+N` instancia. - Franja `FRANJA_TASKBAR=40px` reservada al pie. `area_apps` la descuenta — las ventanas teselan y flotan sin tapar la barra. - `consola`: tipos `Taskbar` / `CeldaTaskbar` + métodos `pintar_taskbar` y `pintar_etiqueta` (rasteriza una cadena en (x, base_y) sobre un fondo conocido, sin tocar la pluma). La pestaña enfocada se pinta con el índigo del foco, las desalojadas con su color de baliza, el resto con el slate del panel. - `compositor::recomponer` arma las celdas y las pasa junto a las capas a la consola; un único repintado, una única presentación. - `atender_raton`: si el clic cae en la franja de la barra, `celda_taskbar_en` localiza la pestaña pulsada y la enfoca (sin iniciar arrastre). Verificado en QEMU: al arrancar, la barra al pie muestra las 7 pestañas con sus nombres; `tonada` enfocada en índigo, `discola` y `glotona` en sus colores de baliza. Un clic sobre `pulso` traslada el foco al instante — el borde del compositor envuelve `pulso` y su pestaña se ilumina. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -228,6 +228,33 @@ clic-para-enfocar y arrastre del marco de las flotantes. Verificada en QEMU
|
||||
cualquier ventana viva); si la enfocada flota, arranca un ARRASTRE con el
|
||||
desfase de agarre; el botón sostenido la sigue al puntero; al soltar, fin.
|
||||
|
||||
## Fase 14 — la identidad del escritorio: nombres y barra de tareas (completada)
|
||||
|
||||
Las ventanas eran anónimas; el escritorio no sabía nombrar lo que mostraba. La
|
||||
Fase 14 le pone un nombre a cada cuarto y una barra al pie con la lista de
|
||||
quienes lo habitan. Verificada en QEMU.
|
||||
|
||||
- Cada `Ventana` lleva un `nombre: String` —el del manifiesto, o el del
|
||||
orquestador al engendrarla en vivo—. `Plantilla` lo guarda para las copias.
|
||||
- Una franja de 40 px al pie reservada como `area_taskbar`. `area_apps` la
|
||||
descuenta — las ventanas teselan y flotan sin tapar la barra ni la consola.
|
||||
- `consola` gana los tipos `Taskbar` / `CeldaTaskbar` y los métodos
|
||||
`pintar_taskbar` y `pintar_etiqueta`. La pestaña enfocada lleva el índigo del
|
||||
foco; la desalojada, su color de baliza; el resto, el slate.
|
||||
- Un clic dentro de la barra enfoca la ventana de la pestaña pulsada, sin
|
||||
iniciar arrastre. El compositor encuentra la celda con `celda_taskbar_en`.
|
||||
|
||||
## Mejora estructural — mapeador MMIO en el kernel (entre fases 13 y 14)
|
||||
|
||||
Los BAR prefetchables 64-bit que OVMF aloja en la ventana PCI de 64 bits NO
|
||||
los mapea `bootloader_api`. El kernel gana `memory::mmio`, que envuelve la
|
||||
tabla L4 activa y abre páginas hacia las regiones MMIO que virtio-drivers le
|
||||
pide. `KernelHal::mmio_phys_to_virt` llama al mapeador antes de devolver el
|
||||
puntero. Trata `PageAlreadyMapped` y `ParentEntryHugePage` como éxito
|
||||
silencioso. Los marcos para tablas intermedias salen del banco DMA. Esta
|
||||
mejora resolvió el #PF inexplicable en máquinas con un OVMF que coloca el BAR
|
||||
del virtio-blk fuera de los primeros 4 GiB.
|
||||
|
||||
Líneas abiertas posteriores: reciclado de las ranuras de ventana cerradas;
|
||||
audio con varias voces (PCM) más allá del tono único de la bocina.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user