feat(mirada): ventanas flotantes — toggle-float
Una ventana puede salir del teselado y flotar: conserva su propio rectángulo y se compone por encima de las teseladas. - Workspace guarda las flotantes en un mapa aparte; layout() tesela sólo las no-flotantes y añade las flotantes al final (orden de pintado). set_floating / is_floating. - WindowPlacement y BodyOp::Configure llevan floating: bool. BodyState detecta el cambio de floating como cualquier otro reconfigure. - DesktopAction::ToggleFloat (Super+f): saca la enfocada a un rectángulo centrado al 60 % de la pantalla, o la devuelve al teselado. En Monocle, una flotante sigue visible. - mirada-compositor ordena las flotantes al frente de la lista front-to-back de elementos → se pintan encima. - HUD de mirada marca las flotantes; mirada-ctl toggle-float. Verificado end-to-end con headless-ctl. mirada-layout 30->32, mirada-protocol 9->10, mirada-body 13->14, mirada-brain 41->42. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -54,12 +54,13 @@ fn main() {
|
||||
BrainCommand::Place(places) => {
|
||||
for p in places {
|
||||
eprintln!(
|
||||
" win {} → {:>5}×{:<4} @ ({:>5},{:>4}){}",
|
||||
" win {} → {:>5}×{:<4} @ ({:>5},{:>4}){}{}",
|
||||
p.id,
|
||||
p.rect.w,
|
||||
p.rect.h,
|
||||
p.rect.x,
|
||||
p.rect.y,
|
||||
if p.floating { " ~flotante" } else { "" },
|
||||
if p.focused { " *" } else { "" },
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user