fix(client/windows): the settings surface fills the window again
The redesign left the page rooted in a vstack, and a StackPanel hands its child the DESIRED height — the NavigationView was clipped in a short window and floated in a tall one. The nav, the Edit-profile scrim and the delete ContentDialog now share one grid, so every layer stretches with the window (the dialog is its own WinUI layer and only needs to be in the tree). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1448,8 +1448,11 @@ pub(crate) fn settings_page(
|
||||
let ss = set_screen.clone();
|
||||
move || ss.call(Screen::Hosts)
|
||||
});
|
||||
// The Edit-profile modal overlays the whole NavigationView (scrim + card), and the delete
|
||||
// confirmation — a ContentDialog, so its own WinUI layer — can sit above either.
|
||||
// One grid, so every layer FILLS the window (a vstack would hand the NavigationView its
|
||||
// desired height — clipped when the window is short, floating when it is tall): the nav,
|
||||
// the Edit-profile scrim + card over it, and the delete confirmation (a ContentDialog,
|
||||
// its own WinUI layer, so its slot in the cell is irrelevant — it just needs to be in
|
||||
// the tree).
|
||||
let mut layers: Vec<Element> = vec![nav.into()];
|
||||
if edit_open {
|
||||
if let Some(p) = &active {
|
||||
@@ -1458,9 +1461,8 @@ pub(crate) fn settings_page(
|
||||
));
|
||||
}
|
||||
}
|
||||
let mut surface: Vec<Element> = vec![grid(layers).into()];
|
||||
if let Some(dialog) = confirm {
|
||||
surface.push(dialog);
|
||||
layers.push(dialog);
|
||||
}
|
||||
vstack(surface).into()
|
||||
grid(layers).into()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user