git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commitca2a4fa11dc941ff18241dbf30f6efcea136f94d
parentec4ebcb9c8
authorLucas Galante <[email protected]>
date2026-06-19 03:24
Fix sticky menubar button highlights on window leave and mouse release

 src/backend/window_runner.rs     | 8 +++++++-
 src/widget/input/button_strip.rs | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/backend/window_runner.rs b/src/backend/window_runner.rs
index adf6c55..b4e229d 100644
--- a/src/backend/window_runner.rs
+++ b/src/backend/window_runner.rs
@@ -1596,7 +1596,13 @@ impl<A: Application> PointerHandler for EngineState<A> {
                         let _ = themed_pointer.set_cursor(_conn, CursorIcon::Default);
                     }
                 }
-                PointerEventKind::Leave { .. } => {}
+                PointerEventKind::Leave { .. } => {
+                    let mut rebuild = false;
+                    self.inner.handle_pointer_move(LogicalPosition::new(-10000.0, -10000.0), &mut rebuild);
+                    if rebuild {
+                        self.redraw = true;
+                    }
+                }
                 PointerEventKind::Motion { .. } => {
                     let mut rebuild = false;
                     self.inner.handle_pointer_move(LogicalPosition::new(lx, ly), &mut rebuild);
diff --git a/src/widget/input/button_strip.rs b/src/widget/input/button_strip.rs
index 0826c59..eab75f6 100644
--- a/src/widget/input/button_strip.rs
+++ b/src/widget/input/button_strip.rs
@@ -290,6 +290,7 @@ impl Element for ButtonStrip {
                             changed = true;
                         }
                     }
+                    changed = true;
                 }
                 self.pressed_idx = None;
             }