From 02930dd2ed6188f5f1e3a5bd3adf0caebc1e4e96 Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 27 Oct 2021 22:58:13 +0200 Subject: [PATCH] Uses a list for item tooltips --- voxygen/src/ui/widgets/item_tooltip.rs | 29 ++++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/voxygen/src/ui/widgets/item_tooltip.rs b/voxygen/src/ui/widgets/item_tooltip.rs index b2e7890f9d..fc58b0ee54 100644 --- a/voxygen/src/ui/widgets/item_tooltip.rs +++ b/voxygen/src/ui/widgets/item_tooltip.rs @@ -120,12 +120,13 @@ impl ItemTooltipManager { ) where I: Borrow, { - let mut y_offset = 0.0; let mp_h = MOUSE_PAD_Y / self.logical_scale_factor; - for item in items { - let tooltip_id = ui.widget_id_generator().next(); + let mut tooltip_id = widget::id::List::new(); - let mut tooltip = |transparency, mouse_pos: [f64; 2], ui: &mut UiCell| { + for (i, item) in items.enumerate() { + tooltip_id.resize(i + 1, &mut ui.widget_id_generator()); + + let tooltip = |transparency, mouse_pos: [f64; 2], ui: &mut UiCell| { // Fill in text and the potential image beforehand to get an accurate size for // spacing let tooltip = tooltip @@ -151,14 +152,20 @@ impl ItemTooltipManager { } else { m_y - mp_h - t_h / 2.0 }; - tooltip - .floating(true) - .transparency(transparency) - .x_y(x, y + y_offset) - .set(tooltip_id, ui); - // Increase the offset to stack the next tooltip on top of the previous one - y_offset += t_h + 5.0; + if i == 0 { + tooltip + .floating(true) + .transparency(transparency) + .x_y(x, y) + .set(tooltip_id[i], ui); + } else { + tooltip + .floating(true) + .transparency(transparency) + .up_from(tooltip_id[i - 1], 5.0) + .set(tooltip_id[i], ui); + } }; match self.state {