summaryrefslogtreecommitdiffstats
path: root/osdep/macosx_events.m
diff options
context:
space:
mode:
Diffstat (limited to 'osdep/macosx_events.m')
-rw-r--r--osdep/macosx_events.m16
1 files changed, 14 insertions, 2 deletions
diff --git a/osdep/macosx_events.m b/osdep/macosx_events.m
index dfa43a0437..e09dc0af93 100644
--- a/osdep/macosx_events.m
+++ b/osdep/macosx_events.m
@@ -252,8 +252,10 @@ void cocoa_put_key_with_modifiers(int keycode, int modifiers)
andMapping:keymap];
}
-- (NSEvent*)handleKeyDown:(NSEvent *)event
+- (NSEvent*)handleKey:(NSEvent *)event
{
+ if ([event isARepeat]) return nil;
+
NSString *chars;
if (RightAltPressed([event modifierFlags]))
@@ -316,9 +318,19 @@ void cocoa_put_key_with_modifiers(int keycode, int modifiers)
return mask;
}
+- (int)mapTypeModifiers:(NSEventType)type
+{
+ NSDictionary *map = @{
+ @(NSKeyDown) : @(MP_KEY_STATE_DOWN),
+ @(NSKeyUp) : @(MP_KEY_STATE_UP),
+ };
+ return [map[@(type)] intValue];
+}
+
- (int)keyModifierMask:(NSEvent *)event
{
- return [self mapKeyModifiers:[event modifierFlags]];
+ return [self mapKeyModifiers:[event modifierFlags]] |
+ [self mapTypeModifiers:[event type]];
}
-(BOOL)handleKey:(int)key withMask:(int)mask andMapping:(NSDictionary *)mapping