From 509f54bf2024d1beeec265a2440637cfd57bdd38 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 21 Jul 2022 17:37:32 +0200 Subject: [PATCH] Don't dispatch keydown event if editor is still composing --- crates/gpui/src/platform/mac/window.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/gpui/src/platform/mac/window.rs b/crates/gpui/src/platform/mac/window.rs index ce06ddac37..9ccbaf33a3 100644 --- a/crates/gpui/src/platform/mac/window.rs +++ b/crates/gpui/src/platform/mac/window.rs @@ -725,7 +725,15 @@ extern "C" fn handle_key_equivalent(this: &Object, _: Sel, native_event: id) -> if let Some(event) = window_state_borrow.pending_key_down_event.take() { if let Some(mut callback) = window_state_borrow.event_callback.take() { drop(window_state_borrow); - callback(Event::KeyDown(event)); + + let is_composing = + with_input_handler(this, |input_handler| input_handler.marked_text_range()) + .flatten() + .is_some(); + if !is_composing { + callback(Event::KeyDown(event)); + } + window_state.borrow_mut().event_callback = Some(callback); } }