From 3b4964c1a067eaa3aaf6dae485aa25f7e8ac4801 Mon Sep 17 00:00:00 2001 From: daa Date: Sun, 3 Dec 2017 20:50:00 +0300 Subject: [PATCH] Fix input for kanji (#6) --- src/input.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/input.rs b/src/input.rs index 8eecd46..9085879 100644 --- a/src/input.rs +++ b/src/input.rs @@ -19,7 +19,8 @@ pub fn keyval_to_input_string(in_str: &str, in_state: gdk::ModifierType) -> Stri // CTRL-^ and CTRL-@ don't work in the normal way. if state.contains(gdk::CONTROL_MASK) && !state.contains(gdk::SHIFT_MASK) && - !state.contains(gdk::MOD1_MASK) { + !state.contains(gdk::MOD1_MASK) + { if val == "6" { val = "^"; } else if val == "2" { @@ -80,7 +81,12 @@ pub fn convert_key(ev: &EventKey) -> Option { pub fn im_input(nvim: &mut Neovim, input: &str) { debug!("nvim_input -> {}", input); - let input = keyval_to_input_string(input, gdk::ModifierType::empty()); + let input: String = input + .chars() + .map(|ch| { + keyval_to_input_string(&ch.to_string(), gdk::ModifierType::empty()) + }) + .collect(); nvim.input(&input).expect("Error run input command to nvim"); }