diff --git a/crates/gpui/src/platform/windows/events.rs b/crates/gpui/src/platform/windows/events.rs index dba88fba4cedb23063e9370ffe8ef6cd75e6823d..8c69bc9df7e054a092598fe3d7694b19fcbb909a 100644 --- a/crates/gpui/src/platform/windows/events.rs +++ b/crates/gpui/src/platform/windows/events.rs @@ -679,6 +679,14 @@ fn handle_ime_composition_inner( lparam: LPARAM, state_ptr: Rc, ) -> Option { + if lparam.0 == 0 { + // Japanese IME may send this message with lparam = 0, which indicates that + // there is no composition string. + with_input_handler(&state_ptr, |input_handler| { + input_handler.replace_text_in_range(None, ""); + })?; + return Some(0); + } let mut ime_input = None; if lparam.0 as u32 & GCS_COMPSTR.0 > 0 { let comp_string = parse_ime_compostion_string(ctx)?;