diff --git a/crates/bevy_ui/src/focus.rs b/crates/bevy_ui/src/focus.rs index 08d488de34bb9..7dd4defc1eefb 100644 --- a/crates/bevy_ui/src/focus.rs +++ b/crates/bevy_ui/src/focus.rs @@ -252,9 +252,13 @@ pub fn ui_focus_system( // The mouse position relative to the node // (0., 0.) is the top-left corner, (1., 1.) is the bottom-right corner // Coordinates are relative to the entire node, not just the visible region. - let relative_cursor_position = camera_cursor_positions - .get(&camera_entity) - .map(|cursor_position| (*cursor_position - node_rect.min) / node_rect.size()); + let relative_cursor_position = + camera_cursor_positions + .get(&camera_entity) + .and_then(|cursor_position| { + (node_rect.size().cmpgt(Vec2::ZERO).all()) + .then_some((*cursor_position - node_rect.min) / node_rect.size()) + }); // If the current cursor position is within the bounds of the node's visible area, consider it for // clicking