vim: Fix jj to exit insert mode (cherry-pick #20890) (#20891)

gcp-cherry-pick-bot[bot] and Conrad Irwin created

Cherry-picked vim: Fix jj to exit insert mode (#20890)

Release Notes:

- (Preview only) fixed binding `jj` to exit insert mode

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Change summary

crates/gpui/src/window.rs | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

Detailed changes

crates/gpui/src/window.rs 🔗

@@ -3043,7 +3043,7 @@ impl<'a> WindowContext<'a> {
             return true;
         }
 
-        if let Some(input) = keystroke.ime_key {
+        if let Some(input) = keystroke.with_simulated_ime().ime_key {
             if let Some(mut input_handler) = self.window.platform_window.take_input_handler() {
                 input_handler.dispatch_input(&input, self);
                 self.window.platform_window.set_input_handler(input_handler);
@@ -3467,7 +3467,13 @@ impl<'a> WindowContext<'a> {
             if !self.propagate_event {
                 continue 'replay;
             }
-            if let Some(input) = replay.keystroke.ime_key.as_ref().cloned() {
+            if let Some(input) = replay
+                .keystroke
+                .with_simulated_ime()
+                .ime_key
+                .as_ref()
+                .cloned()
+            {
                 if let Some(mut input_handler) = self.window.platform_window.take_input_handler() {
                     input_handler.dispatch_input(&input, self);
                     self.window.platform_window.set_input_handler(input_handler)