The macOS input handler assumes that you want to insert control sequences when you type ctrl-alt-X (you probably don't...). Release Notes: - (nightly only) fix ctrl-alt-X shortcuts
Unified · Split
| @@ -1253,7 +1253,10 @@ extern "C" fn handle_key_event(this: &Object, native_event: id, key_equivalent: · 1252 unmodified lines | ||
| 1253 | 1253 | // otherwise we only send to the input handler if we don't have a matching binding. |
| 1254 | 1254 | // The input handler may call `do_command_by_selector` if it doesn't know how to handle |
| 1255 | 1255 | // a key. If it does so, it will return YES so we won't send the key twice. |
| 1256 | − if is_composing || event.keystroke.key_char.is_none() { | |
| 1256 | + // We also do this for non-printing keys (like arrow keys and escape) as the IME menu | |
| 1257 | + // may need them even if there is no marked text; | |
| 1258 | + // however we skip keys with control or the input handler adds control-characters to the buffer. | |
| 1259 | + if is_composing || (event.keystroke.key_char.is_none() && !event.keystroke.modifiers.control) { | |
| 1257 | 1260 | { |
| 1258 | 1261 | let mut lock = window_state.as_ref().lock(); |
| 1259 | 1262 | lock.keystroke_for_do_command = Some(event.keystroke.clone()); |