History

Fix ctrl-alt-X shortcuts (#21473)

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

Conrad Irwin committed 1 year ago

Commit c4433071 parent 2dd51381 file · +4 −1Browse files

Unified · Split

crates/gpui/src/platform/mac/window.rs+4−1
@@ -1253,7 +1253,10 @@ extern "C" fn handle_key_event(this: &Object, native_event: id, key_equivalent: · 1252 unmodified lines
12531253 // otherwise we only send to the input handler if we don't have a matching binding.
12541254 // The input handler may call `do_command_by_selector` if it doesn't know how to handle
12551255 // 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) {
12571260 {
12581261 let mut lock = window_state.as_ref().lock();
12591262 lock.keystroke_for_do_command = Some(event.keystroke.clone());