From 1ac21a9d994cc68c8e4cce6101a6bade6a9da89d Mon Sep 17 00:00:00 2001 From: Hojjat Date: Tue, 4 Aug 2026 11:50:12 -0600 Subject: [PATCH] fix: request redraw when hover state changes --- src/widget/button/widget.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/widget/button/widget.rs b/src/widget/button/widget.rs index a9d44b2b..f5501134 100644 --- a/src/widget/button/widget.rs +++ b/src/widget/button/widget.rs @@ -868,8 +868,21 @@ pub fn update<'a, Message: Clone>( } } } + Event::Mouse(mouse::Event::CursorMoved { .. }) + | Event::Touch(touch::Event::FingerMoved { .. }) => { + let state = state(); + let is_hovered = cursor.is_over(layout.bounds()); + if state.is_hovered != is_hovered { + state.is_hovered = is_hovered; + shell.request_redraw(); + } + } Event::Touch(touch::Event::FingerLost { .. }) | Event::Mouse(mouse::Event::CursorLeft) => { let state = state(); + + if state.is_hovered || state.is_pressed { + shell.request_redraw(); + } state.is_hovered = false; state.is_pressed = false; }