From e2eb7e8722e8fd425435bf12cf8e5cfc2e60fb1d Mon Sep 17 00:00:00 2001 From: hodasemi Date: Thu, 6 Mar 2025 17:30:50 +0100 Subject: [PATCH] Try to solve tool tip disabling --- character_window/src/abilities/ability_right_side.rs | 2 +- character_window/src/abilities/content.rs | 6 +++--- character_window/src/inventory/content.rs | 6 +++--- character_window/src/inventory/item_right_side.rs | 8 ++++---- character_window/src/inventory/jewel_right_side.rs | 4 ++-- character_window/src/lib.rs | 8 ++++++-- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/character_window/src/abilities/ability_right_side.rs b/character_window/src/abilities/ability_right_side.rs index 5d8dc1c..3e236b0 100644 --- a/character_window/src/abilities/ability_right_side.rs +++ b/character_window/src/abilities/ability_right_side.rs @@ -106,7 +106,7 @@ impl AbilityPageRightSide { menu.add_tooltip("active_ability", gui); } } else { - menu.remove_tooltip("active_ability"); + menu.remove_tooltip(world, "active_ability")?; } } diff --git a/character_window/src/abilities/content.rs b/character_window/src/abilities/content.rs index a9413f3..8c9ce00 100644 --- a/character_window/src/abilities/content.rs +++ b/character_window/src/abilities/content.rs @@ -124,7 +124,7 @@ impl ContentUpdate for Content { } else { let window = reference.upgrade().unwrap(); - window.remove_tooltip(format!("addon_{index}")); + window.remove_tooltip(world, format!("addon_{index}"))?; } Ok(()) @@ -275,8 +275,8 @@ impl ContentUpdate for Content> { } else { let window = reference.upgrade().unwrap(); - window.remove_tooltip(format!("book_{index}")); - window.remove_tooltip("active_book"); + window.remove_tooltip(world, format!("book_{index}"))?; + window.remove_tooltip(world, "active_book")?; } Ok(()) diff --git a/character_window/src/inventory/content.rs b/character_window/src/inventory/content.rs index db70923..48f047e 100644 --- a/character_window/src/inventory/content.rs +++ b/character_window/src/inventory/content.rs @@ -217,8 +217,8 @@ impl ContentUpdate for Content { } else { let window = reference.upgrade().unwrap(); - window.remove_tooltip(format!("item_{index}")); - window.remove_tooltip("equip"); + window.remove_tooltip(world, format!("item_{index}"))?; + window.remove_tooltip(world, "equip")?; } Ok(()) @@ -337,7 +337,7 @@ impl ContentUpdate for Content { } else { let window = reference.upgrade().unwrap(); - window.remove_tooltip(format!("jewel_{index}")); + window.remove_tooltip(world, format!("jewel_{index}"))?; } Ok(()) diff --git a/character_window/src/inventory/item_right_side.rs b/character_window/src/inventory/item_right_side.rs index 4f92d7e..a3843c8 100644 --- a/character_window/src/inventory/item_right_side.rs +++ b/character_window/src/inventory/item_right_side.rs @@ -211,11 +211,11 @@ mod macros { reference.upgrade().unwrap().add_tooltip("equip", gui); } None => { - reference.upgrade().unwrap().remove_tooltip("equip"); + reference.upgrade().unwrap().remove_tooltip(world, "equip")?; } } } else { - reference.upgrade().unwrap().remove_tooltip("equip"); + reference.upgrade().unwrap().remove_tooltip(world, "equip")?; } Ok(()) @@ -346,11 +346,11 @@ mod macros { reference.upgrade().unwrap().add_tooltip("equip", gui); } None => { - reference.upgrade().unwrap().remove_tooltip("equip"); + reference.upgrade().unwrap().remove_tooltip(world, "equip")?; } } } else { - reference.upgrade().unwrap().remove_tooltip("equip"); + reference.upgrade().unwrap().remove_tooltip(world, "equip")?; } Ok(()) diff --git a/character_window/src/inventory/jewel_right_side.rs b/character_window/src/inventory/jewel_right_side.rs index 2a946e9..a5ce10d 100644 --- a/character_window/src/inventory/jewel_right_side.rs +++ b/character_window/src/inventory/jewel_right_side.rs @@ -120,7 +120,7 @@ impl JewelRightSide { menu.add_tooltip("upper", tooltip); } } else { - menu.remove_tooltip("upper"); + menu.remove_tooltip(world, "upper")?; } Ok(()) @@ -163,7 +163,7 @@ impl JewelRightSide { menu.add_tooltip(format!("lower_{index}",), tooltip); } } else { - menu.remove_tooltip(format!("lower_{index}")); + menu.remove_tooltip(world, format!("lower_{index}"))?; } Ok(()) diff --git a/character_window/src/lib.rs b/character_window/src/lib.rs index e3fc7b8..f11e9aa 100644 --- a/character_window/src/lib.rs +++ b/character_window/src/lib.rs @@ -234,8 +234,12 @@ impl CharacterWindow { .insert(name.to_string(), gui.into()); } - pub fn remove_tooltip(&self, name: impl ToString) { - self.tooltips.lock().unwrap().remove(&name.to_string()); + pub fn remove_tooltip(&self, world: &mut World, name: impl ToString) -> Result<()> { + if let Some(tooltip) = self.tooltips.lock().unwrap().remove(&name.to_string()) { + tooltip.disable(world)?; + } + + Ok(()) } pub fn salvage_from_inventory(world: &mut World, hero: Entity, f: F) -> Result<()>