style: add display="none"

This commit is contained in:
Aleksander
2025-11-13 20:54:19 +01:00
parent 4d4292255a
commit 830be58c7a
4 changed files with 14 additions and 8 deletions

View File

@@ -318,12 +318,16 @@ fn draw_children(params: &DrawParams, state: &mut DrawState, parent_node_id: taf
let layout = &params.layout;
for node_id in layout.state.tree.child_ids(parent_node_id) {
let Some(widget_id) = layout.state.tree.get_node_context(node_id).copied() else {
let Ok(style) = layout.state.tree.style(node_id) else {
debug_assert!(false);
continue;
};
let Ok(style) = layout.state.tree.style(node_id) else {
if style.display == taffy::Display::None {
continue;
}
let Some(widget_id) = layout.state.tree.get_node_context(node_id).copied() else {
debug_assert!(false);
continue;
};

View File

@@ -405,6 +405,10 @@ impl Layout {
let style = self.state.tree.style(node_id)?;
if style.display == taffy::Display::None {
return Ok(());
}
let Some(widget) = self.state.widgets.get(widget_id) else {
debug_assert!(false);
anyhow::bail!("invalid widget");

View File

@@ -117,6 +117,7 @@ pub fn parse_style(attribs: &[AttribPair]) -> taffy::Style {
"flex" => style.display = Display::Flex,
"block" => style.display = Display::Block,
"grid" => style.display = Display::Grid,
"none" => style.display = Display::None,
_ => {
print_invalid_attrib(key, value);
}