use bevy::prelude::*;
#[derive(Resource, PartialEq, Eq, Default)]
pub struct EguiWantsFocus(pub bool);
pub fn check_egui_wants_focus(
mut contexts: bevy_egui::EguiContexts,
mut wants_focus: ResMut<EguiWantsFocus>,
windows: Query<Entity, With<Window>>,
) {
let new_wants_focus = windows.iter().any(|window| {
let ctx = contexts.ctx_for_window_mut(window);
ctx.wants_pointer_input() || ctx.wants_keyboard_input()
});
let new_res = EguiWantsFocus(new_wants_focus);
wants_focus.set_if_neq(new_res);
}