vim: Fix shortcuts that require shift+punct (cherry-pick #20990) (#20992)

gcp-cherry-pick-bot[bot] and Conrad Irwin created

Cherry-picked vim: Fix shortcuts that require shift+punct (#20990)

Fixes a bug I introduced in #20953

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Change summary

crates/gpui/src/platform/mac/events.rs | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)

Detailed changes

crates/gpui/src/platform/mac/events.rs 🔗

@@ -341,6 +341,18 @@ unsafe fn parse_keystroke(native_event: id) -> Keystroke {
                 chars_ignoring_modifiers = chars_with_cmd;
             }
 
+            if !control && !command && !function {
+                let mut mods = NO_MOD;
+                if shift {
+                    mods |= SHIFT_MOD;
+                }
+                if alt {
+                    mods |= OPTION_MOD;
+                }
+
+                key_char = Some(chars_for_modified_key(native_event.keyCode(), mods));
+            }
+
             let mut key = if shift
                 && chars_ignoring_modifiers
                     .chars()
@@ -354,18 +366,6 @@ unsafe fn parse_keystroke(native_event: id) -> Keystroke {
                 chars_ignoring_modifiers
             };
 
-            if !control && !command && !function {
-                let mut mods = NO_MOD;
-                if shift {
-                    mods |= SHIFT_MOD;
-                }
-                if alt {
-                    mods |= OPTION_MOD;
-                }
-
-                key_char = Some(chars_for_modified_key(native_event.keyCode(), mods));
-            }
-
             key
         }
     };