gardesk/garfield / d931fc0

Browse files

ui: render tooltip as separate overlay pass

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
d931fc0cff5c45b7e8478e4e268bee4729a4cbce
Parents
49a76cb
Tree
3b17b39

1 changed file

StatusFile+-
M garfield/src/ui/toolbar.rs 7 3
garfield/src/ui/toolbar.rsmodified
@@ -194,7 +194,7 @@ impl Toolbar {
194194
         self.hovered.map(|i| self.buttons[i].tooltip)
195195
     }
196196
 
197
-    /// Render the toolbar.
197
+    /// Render the toolbar (without tooltip - call render_tooltip_overlay separately).
198198
     pub fn render(&self, renderer: &Renderer) -> Result<()> {
199199
         let theme = renderer.theme();
200200
 
@@ -216,13 +216,17 @@ impl Toolbar {
216216
             self.render_button(renderer, button, i, theme)?;
217217
         }
218218
 
219
-        // Draw tooltip if hovering
219
+        Ok(())
220
+    }
221
+
222
+    /// Render tooltip overlay (call after all other UI to ensure it's on top).
223
+    pub fn render_tooltip_overlay(&self, renderer: &Renderer) -> Result<()> {
220224
         if let Some(hovered_idx) = self.hovered {
221225
             if let Some(button) = self.buttons.get(hovered_idx) {
226
+                let theme = renderer.theme();
222227
                 self.render_tooltip(renderer, button, theme)?;
223228
             }
224229
         }
225
-
226230
         Ok(())
227231
     }
228232