Skip to content

Replace NSDictionary by switch-case. #21822

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 1, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 41 additions & 43 deletions src/_macosx.m
Original file line number Diff line number Diff line change
Expand Up @@ -1595,47 +1595,6 @@ - (void)removeRubberband

- (const char*)convertKeyEvent:(NSEvent*)event
{
NSDictionary* specialkeymappings = [NSDictionary dictionaryWithObjectsAndKeys:
@"left", [NSNumber numberWithUnsignedLong:NSLeftArrowFunctionKey],
@"right", [NSNumber numberWithUnsignedLong:NSRightArrowFunctionKey],
@"up", [NSNumber numberWithUnsignedLong:NSUpArrowFunctionKey],
@"down", [NSNumber numberWithUnsignedLong:NSDownArrowFunctionKey],
@"f1", [NSNumber numberWithUnsignedLong:NSF1FunctionKey],
@"f2", [NSNumber numberWithUnsignedLong:NSF2FunctionKey],
@"f3", [NSNumber numberWithUnsignedLong:NSF3FunctionKey],
@"f4", [NSNumber numberWithUnsignedLong:NSF4FunctionKey],
@"f5", [NSNumber numberWithUnsignedLong:NSF5FunctionKey],
@"f6", [NSNumber numberWithUnsignedLong:NSF6FunctionKey],
@"f7", [NSNumber numberWithUnsignedLong:NSF7FunctionKey],
@"f8", [NSNumber numberWithUnsignedLong:NSF8FunctionKey],
@"f9", [NSNumber numberWithUnsignedLong:NSF9FunctionKey],
@"f10", [NSNumber numberWithUnsignedLong:NSF10FunctionKey],
@"f11", [NSNumber numberWithUnsignedLong:NSF11FunctionKey],
@"f12", [NSNumber numberWithUnsignedLong:NSF12FunctionKey],
@"f13", [NSNumber numberWithUnsignedLong:NSF13FunctionKey],
@"f14", [NSNumber numberWithUnsignedLong:NSF14FunctionKey],
@"f15", [NSNumber numberWithUnsignedLong:NSF15FunctionKey],
@"f16", [NSNumber numberWithUnsignedLong:NSF16FunctionKey],
@"f17", [NSNumber numberWithUnsignedLong:NSF17FunctionKey],
@"f18", [NSNumber numberWithUnsignedLong:NSF18FunctionKey],
@"f19", [NSNumber numberWithUnsignedLong:NSF19FunctionKey],
@"scroll_lock", [NSNumber numberWithUnsignedLong:NSScrollLockFunctionKey],
@"break", [NSNumber numberWithUnsignedLong:NSBreakFunctionKey],
@"insert", [NSNumber numberWithUnsignedLong:NSInsertFunctionKey],
@"delete", [NSNumber numberWithUnsignedLong:NSDeleteFunctionKey],
@"home", [NSNumber numberWithUnsignedLong:NSHomeFunctionKey],
@"end", [NSNumber numberWithUnsignedLong:NSEndFunctionKey],
@"pagedown", [NSNumber numberWithUnsignedLong:NSPageDownFunctionKey],
@"pageup", [NSNumber numberWithUnsignedLong:NSPageUpFunctionKey],
@"backspace", [NSNumber numberWithUnsignedLong:NSDeleteCharacter],
@"enter", [NSNumber numberWithUnsignedLong:NSEnterCharacter],
@"tab", [NSNumber numberWithUnsignedLong:NSTabCharacter],
@"enter", [NSNumber numberWithUnsignedLong:NSCarriageReturnCharacter],
@"backtab", [NSNumber numberWithUnsignedLong:NSBackTabCharacter],
@"escape", [NSNumber numberWithUnsignedLong:27],
nil
];

NSMutableString* returnkey = [NSMutableString string];
if (keyChangeControl) {
// When control is the key that was pressed, return the full word
Expand All @@ -1658,8 +1617,47 @@ - (const char*)convertKeyEvent:(NSEvent*)event
// flagsChanged event can't handle charactersIgnoringModifiers
// because it was a modifier key that was pressed/released
if (event.type != NSEventTypeFlagsChanged) {
unichar uc = [[event charactersIgnoringModifiers] characterAtIndex:0];
NSString *specialchar = [specialkeymappings objectForKey:[NSNumber numberWithUnsignedLong:uc]];
NSString* specialchar;
switch ([[event charactersIgnoringModifiers] characterAtIndex:0]) {
case NSLeftArrowFunctionKey: specialchar = @"left"; break;
case NSRightArrowFunctionKey: specialchar = @"right"; break;
case NSUpArrowFunctionKey: specialchar = @"up"; break;
case NSDownArrowFunctionKey: specialchar = @"down"; break;
case NSF1FunctionKey: specialchar = @"f1"; break;
case NSF2FunctionKey: specialchar = @"f2"; break;
case NSF3FunctionKey: specialchar = @"f3"; break;
case NSF4FunctionKey: specialchar = @"f4"; break;
case NSF5FunctionKey: specialchar = @"f5"; break;
case NSF6FunctionKey: specialchar = @"f6"; break;
case NSF7FunctionKey: specialchar = @"f7"; break;
case NSF8FunctionKey: specialchar = @"f8"; break;
case NSF9FunctionKey: specialchar = @"f9"; break;
case NSF10FunctionKey: specialchar = @"f10"; break;
case NSF11FunctionKey: specialchar = @"f11"; break;
case NSF12FunctionKey: specialchar = @"f12"; break;
case NSF13FunctionKey: specialchar = @"f13"; break;
case NSF14FunctionKey: specialchar = @"f14"; break;
case NSF15FunctionKey: specialchar = @"f15"; break;
case NSF16FunctionKey: specialchar = @"f16"; break;
case NSF17FunctionKey: specialchar = @"f17"; break;
case NSF18FunctionKey: specialchar = @"f18"; break;
case NSF19FunctionKey: specialchar = @"f19"; break;
case NSScrollLockFunctionKey: specialchar = @"scroll_lock"; break;
case NSBreakFunctionKey: specialchar = @"break"; break;
case NSInsertFunctionKey: specialchar = @"insert"; break;
case NSDeleteFunctionKey: specialchar = @"delete"; break;
case NSHomeFunctionKey: specialchar = @"home"; break;
case NSEndFunctionKey: specialchar = @"end"; break;
case NSPageDownFunctionKey: specialchar = @"pagedown"; break;
case NSPageUpFunctionKey: specialchar = @"pageup"; break;
case NSDeleteCharacter: specialchar = @"backspace"; break;
case NSEnterCharacter: specialchar = @"enter"; break;
case NSTabCharacter: specialchar = @"tab"; break;
case NSCarriageReturnCharacter: specialchar = @"enter"; break;
case NSBackTabCharacter: specialchar = @"backtab"; break;
case 27: specialchar = @"escape"; break;
default: specialchar = nil;
}
if (specialchar) {
if (([event modifierFlags] & NSEventModifierFlagShift) || keyChangeShift) {
[returnkey appendString:@"shift+"];
Expand Down