From a49605bd9b0ae538ae9cf83b74132d0f0e820a9a Mon Sep 17 00:00:00 2001 From: rezural Date: Sat, 29 May 2021 13:00:01 +1000 Subject: check if the egui context wants pointer focus, disable orbit camera if so. this disables egui interactions being sent to the orbital camera --- src_testbed/testbed.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 6e314c8..bd0af2c 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -423,6 +423,7 @@ impl TestbedApp { .insert_non_send_resource(self.plugins) .add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded()) .add_system_to_stage("physics", update_testbed.system()) + .add_system(egui_focus.system()) .run(); } } @@ -841,6 +842,16 @@ fn setup_graphics_environment(mut commands: Commands) { }); } +fn egui_focus(ui_context: Res, mut cameras: Query<&mut OrbitCamera>) { + let mut camera_enabled = true; + if ui_context.ctx().wants_pointer_input() { + camera_enabled = false; + } + for mut camera in cameras.iter_mut() { + camera.enabled = camera_enabled; + } +} + fn update_testbed( mut commands: Commands, windows: Res, -- cgit