summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libvo/vo_corevideo.m11
1 files changed, 9 insertions, 2 deletions
diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m
index 3b83051eb7..e937460636 100644
--- a/libvo/vo_corevideo.m
+++ b/libvo/vo_corevideo.m
@@ -938,8 +938,15 @@ static int control(uint32_t request, void *data)
*/
- (void) keyDown: (NSEvent *) theEvent
{
- int key = convert_key([theEvent keyCode], *[[theEvent characters] UTF8String]);
- if (key != -1) {
+ unsigned char charcode;
+ if (([theEvent modifierFlags] & NSRightAlternateKeyMask) == NSRightAlternateKeyMask)
+ charcode = *[[theEvent characters] UTF8String];
+ else
+ charcode = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
+
+ int key = convert_key([theEvent keyCode], charcode);
+
+ if (key > -1) {
if([theEvent modifierFlags] & NSShiftKeyMask)
key |= KEY_MODIFIER_SHIFT;
if([theEvent modifierFlags] & NSControlKeyMask)