diff --git a/uidev/src/testbed/testbed_generic.rs b/uidev/src/testbed/testbed_generic.rs index b3e60af..408c121 100644 --- a/uidev/src/testbed/testbed_generic.rs +++ b/uidev/src/testbed/testbed_generic.rs @@ -8,9 +8,9 @@ use glam::Vec2; use wgui::{ assets::AssetPath, components::{ - Component, button::{ButtonClickCallback, ComponentButton}, checkbox::ComponentCheckbox, + Component, }, drawing::Color, event::StyleSetRequest, @@ -90,7 +90,7 @@ impl TestbedGeneric { )?; let extra = ParseDocumentExtra { - on_custom_attribs: Some(Box::new(move |par| { + on_custom_attribs: Some(Rc::new(move |par| { let Some(my_custom_value) = par.get_value("_my_custom") else { return; }; diff --git a/wgui/src/parser/mod.rs b/wgui/src/parser/mod.rs index 57cf2a5..0e3625a 100644 --- a/wgui/src/parser/mod.rs +++ b/wgui/src/parser/mod.rs @@ -1069,9 +1069,9 @@ impl CustomAttribsInfoOwned { } } -pub type OnCustomAttribsFunc = Box; +pub type OnCustomAttribsFunc = Rc; -#[derive(Default)] +#[derive(Default, Clone)] pub struct ParseDocumentExtra { pub on_custom_attribs: Option, // all attributes with '_' character prepended pub dev_mode: bool, diff --git a/wlx-overlay-s/src/gui/panel/mod.rs b/wlx-overlay-s/src/gui/panel/mod.rs index eabfcfa..c1bdbcf 100644 --- a/wlx-overlay-s/src/gui/panel/mod.rs +++ b/wlx-overlay-s/src/gui/panel/mod.rs @@ -113,7 +113,7 @@ impl GuiPanel { AssetPath::FileOrBuiltIn(path) }, extra: wgui::parser::ParseDocumentExtra { - on_custom_attribs: Some(Box::new({ + on_custom_attribs: Some(Rc::new({ let custom_elems = custom_elems.clone(); move |attribs| { custom_elems.borrow_mut().push(attribs.to_owned());