From 3029481b72a2ca975a9bb915e23c0461334ba54f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 3 Feb 2025 04:34:13 +0100 Subject: Ignore redraws of invisible content in `hover` widget --- widget/src/helpers.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'widget') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 17cf94cc..199b8fc0 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -871,16 +871,19 @@ where shell.request_redraw(); } + let is_visible = + is_hovered || self.is_top_focused || self.is_top_overlay_active; + if matches!( event, Event::Mouse( mouse::Event::CursorMoved { .. } | mouse::Event::ButtonReleased(_) ) - ) || is_hovered - || self.is_top_focused - || self.is_top_overlay_active + ) || is_visible { + let redraw_request = shell.redraw_request(); + self.top.as_widget_mut().update( top_tree, event.clone(), @@ -891,6 +894,11 @@ where shell, viewport, ); + + // Ignore redraw requests of invisible content + if !is_visible { + Shell::replace_redraw_request(shell, redraw_request); + } }; if shell.is_event_captured() { -- cgit