From 830be58c7a47358efd84f3c24725258f0c225fd8 Mon Sep 17 00:00:00 2001 From: Aleksander Date: Thu, 13 Nov 2025 20:54:19 +0100 Subject: [PATCH] style: add `display="none"` --- wgui/src/drawing.rs | 8 ++++++-- wgui/src/layout.rs | 4 ++++ wgui/src/parser/style.rs | 1 + wlx-overlay-s/src/windowing/manager.rs | 9 +++------ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/wgui/src/drawing.rs b/wgui/src/drawing.rs index db3dcda..d18f2ef 100644 --- a/wgui/src/drawing.rs +++ b/wgui/src/drawing.rs @@ -318,12 +318,16 @@ fn draw_children(params: &DrawParams, state: &mut DrawState, parent_node_id: taf let layout = ¶ms.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; }; diff --git a/wgui/src/layout.rs b/wgui/src/layout.rs index 285e3b1..e46fb9b 100644 --- a/wgui/src/layout.rs +++ b/wgui/src/layout.rs @@ -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"); diff --git a/wgui/src/parser/style.rs b/wgui/src/parser/style.rs index 9180099..028b115 100644 --- a/wgui/src/parser/style.rs +++ b/wgui/src/parser/style.rs @@ -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); } diff --git a/wlx-overlay-s/src/windowing/manager.rs b/wlx-overlay-s/src/windowing/manager.rs index 6880c95..b741927 100644 --- a/wlx-overlay-s/src/windowing/manager.rs +++ b/wlx-overlay-s/src/windowing/manager.rs @@ -5,18 +5,15 @@ use slotmap::{HopSlotMap, Key, SecondaryMap}; use crate::{ overlays::{ - anchor::create_anchor, - edit::EditWrapperManager, - keyboard::builder::create_keyboard, - screen::create_screens, - watch::{create_watch, WATCH_NAME}, + anchor::create_anchor, edit::EditWrapperManager, keyboard::builder::create_keyboard, + screen::create_screens, watch::create_watch, }, state::AppState, windowing::{ + OverlayID, OverlaySelector, set::{OverlayWindowSet, SerializedWindowSet}, snap_upright, window::OverlayWindowData, - OverlayID, OverlaySelector, }, };