aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/input/keyboard.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/input/keyboard.rs')
-rw-r--r--alacritty/src/input/keyboard.rs15
1 files changed, 5 insertions, 10 deletions
diff --git a/alacritty/src/input/keyboard.rs b/alacritty/src/input/keyboard.rs
index 4bc3ffee..14755594 100644
--- a/alacritty/src/input/keyboard.rs
+++ b/alacritty/src/input/keyboard.rs
@@ -1,5 +1,4 @@
use std::borrow::Cow;
-use std::mem;
use winit::event::{ElementState, KeyEvent};
#[cfg(target_os = "macos")]
@@ -29,6 +28,9 @@ impl<T: EventListener, A: ActionContext<T>> Processor<T, A> {
let mods = self.ctx.modifiers().state();
if key.state == ElementState::Released {
+ if self.ctx.inline_search_state().char_pending {
+ self.ctx.window().set_ime_allowed(true);
+ }
self.key_release(key, mode, mods);
return;
}
@@ -45,15 +47,8 @@ impl<T: EventListener, A: ActionContext<T>> Processor<T, A> {
// First key after inline search is captured.
let inline_state = self.ctx.inline_search_state();
- if mem::take(&mut inline_state.char_pending) {
- if let Some(c) = text.chars().next() {
- inline_state.character = Some(c);
-
- // Immediately move to the captured character.
- self.ctx.inline_search_next();
- }
-
- // Ignore all other characters in `text`.
+ if inline_state.char_pending {
+ self.ctx.inline_search_input(text);
return;
}