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
1253 // otherwise we only send to the input handler if we don't have a matching binding.1253 // otherwise we only send to the input handler if we don't have a matching binding.
1254 // The input handler may call `do_command_by_selector` if it doesn't know how to handle1254 // The input handler may call `do_command_by_selector` if it doesn't know how to handle
1255 // a key. If it does so, it will return YES so we won't send the key twice.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 let mut lock = window_state.as_ref().lock();1261 let mut lock = window_state.as_ref().lock();
1259 lock.keystroke_for_do_command = Some(event.keystroke.clone());1262 lock.keystroke_for_do_command = Some(event.keystroke.clone());