diff options
author | 2025-02-03 17:24:05 +0100 | |
---|---|---|
committer | 2025-02-03 17:24:05 +0100 | |
commit | 50eaef28447f453bc90133de19cff8b2bfee27de (patch) | |
tree | eaa85242780846f22198dd02909a69815385f589 /widget/src/helpers.rs | |
parent | 141290c7402a4e087ce18d60b210f4feeafcebee (diff) | |
parent | 0c0651de5b1722194d48c19cd645e747fb72ccb6 (diff) | |
download | iced-50eaef28447f453bc90133de19cff8b2bfee27de.tar.gz iced-50eaef28447f453bc90133de19cff8b2bfee27de.tar.bz2 iced-50eaef28447f453bc90133de19cff8b2bfee27de.zip |
Merge branch 'master' into explore-input-method2
Diffstat (limited to 'widget/src/helpers.rs')
-rw-r--r-- | widget/src/helpers.rs | 14 |
1 files changed, 11 insertions, 3 deletions
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() { |