diff --git a/src/changelog/unreleased.md b/src/changelog/unreleased.md index 96721e4aa2..5bf152f5a2 100644 --- a/src/changelog/unreleased.md +++ b/src/changelog/unreleased.md @@ -59,6 +59,7 @@ changelog entry. - Implement `Clone`, `Copy`, `Debug`, `Deserialize`, `Eq`, `Hash`, `Ord`, `PartialEq`, `PartialOrd` and `Serialize` on many types. - Add `MonitorHandle::current_video_mode()`. +- On Android, the soft keyboard can now be shown using `Window::set_ime_allowed`. - Add basic iOS IME support. The soft keyboard can now be shown using `Window::set_ime_allowed`. - Add `ApplicationHandlerExtMacOS` trait, and a `macos_handler` method to `ApplicationHandler` which returns a `dyn ApplicationHandlerExtMacOS` which allows for macOS specific extensions to winit. - Add a `standard_key_binding` method to the `ApplicationHandlerExtMacOS` trait. This allows handling of standard keybindings such as "go to end of line" on macOS. diff --git a/src/platform_impl/android/mod.rs b/src/platform_impl/android/mod.rs index 1b024bde7d..acc52af9ae 100644 --- a/src/platform_impl/android/mod.rs +++ b/src/platform_impl/android/mod.rs @@ -925,7 +925,13 @@ impl CoreWindow for Window { fn set_ime_cursor_area(&self, _position: Position, _size: Size) {} - fn set_ime_allowed(&self, _allowed: bool) {} + fn set_ime_allowed(&self, allowed: bool) { + if allowed { + self.app.show_soft_input(true); + } else { + self.app.hide_soft_input(true); + } + } fn set_ime_purpose(&self, _purpose: ImePurpose) {} diff --git a/src/window.rs b/src/window.rs index 544374da6c..f607018868 100644 --- a/src/window.rs +++ b/src/window.rs @@ -1028,8 +1028,8 @@ pub trait Window: AsAny + Send + Sync { /// /// - **macOS:** IME must be enabled to receive text-input where dead-key sequences are /// combined. - /// - **iOS:** This will show / hide the soft keyboard. - /// - **Android / Web / Orbital:** Unsupported. + /// - **iOS / Android:** This will show / hide the soft keyboard. + /// - **Web / Orbital:** Unsupported. /// - **X11**: Enabling IME will disable dead keys reporting during compose. /// /// [`Ime`]: crate::event::WindowEvent::Ime