diff --git a/src/gui/app.rs b/src/gui/app.rs index eeeeada..7970278 100644 --- a/src/gui/app.rs +++ b/src/gui/app.rs @@ -34,6 +34,11 @@ impl PlatformApp { impl eframe::App for PlatformApp { fn update(&mut self, ctx: &Context, frame: &mut eframe::Frame) { + // Handle Esc keyboard key event. + if ctx.input(|i| i.key_pressed(egui::Key::Escape)) { + Root::on_back(); + } + // Show main content. egui::CentralPanel::default() .frame(egui::Frame { @@ -51,5 +56,18 @@ impl eframe::App for PlatformApp { } } +#[allow(dead_code)] +#[cfg(target_os = "android")] +#[allow(non_snake_case)] +#[no_mangle] +/// Handle Back key code event from Android. +pub extern "C" fn Java_mw_gri_android_MainActivity_onBack( + _env: jni::JNIEnv, + _class: jni::objects::JObject, + _activity: jni::objects::JObject, +) { + Root::on_back(); +} +