From a43b30da41d6512a0c9f7fcde2679ac75232ca10 Mon Sep 17 00:00:00 2001 From: Nova Date: Thu, 1 Sep 2022 19:44:34 -0400 Subject: [PATCH] fix(item): add to items registry on new --- src/nodes/item.rs | 13 +++++++------ src/wayland/panel_item.rs | 5 +---- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/nodes/item.rs b/src/nodes/item.rs index 0a42caa..f8ee6ca 100644 --- a/src/nodes/item.rs +++ b/src/nodes/item.rs @@ -92,7 +92,11 @@ pub struct Item { pub specialization: ItemType, } impl Item { - pub fn new(node: &Arc, type_info: &'static TypeInfo, specialization: ItemType) -> Self { + pub fn new( + node: &Arc, + type_info: &'static TypeInfo, + specialization: ItemType, + ) -> Arc { node.add_local_signal("captureInto", capture_into_flex); let item = Item { node: Arc::downgrade(node), @@ -101,6 +105,7 @@ impl Item { captured_acceptor: Default::default(), specialization, }; + let item = type_info.items.add(item); if let Some(ui) = type_info.ui.lock().upgrade() { ui.handle_create_item(&item); } @@ -169,11 +174,7 @@ pub struct EnvironmentItem { impl EnvironmentItem { pub fn add_to(node: &Arc, path: String) { let specialization = ItemType::Environment(EnvironmentItem { path }); - let item = ITEM_TYPE_INFO_ENVIRONMENT.items.add(Item::new( - node, - &ITEM_TYPE_INFO_ENVIRONMENT, - specialization, - )); + let item = Item::new(node, &ITEM_TYPE_INFO_ENVIRONMENT, specialization); let _ = node.item.set(item); node.add_local_method("getPath", EnvironmentItem::get_path_flex); } diff --git a/src/wayland/panel_item.rs b/src/wayland/panel_item.rs index 341ed0d..d1ceb9e 100644 --- a/src/wayland/panel_item.rs +++ b/src/wayland/panel_item.rs @@ -98,10 +98,7 @@ impl PanelItem { seat_data, size, }); - let item = - ITEM_TYPE_INFO_PANEL - .items - .add(Item::new(&node, &ITEM_TYPE_INFO_PANEL, specialization)); + let item = Item::new(&node, &ITEM_TYPE_INFO_PANEL, specialization); let _ = node.item.set(item); node.add_local_signal( "applySurfaceMaterial",