From ef0570c752a8577209cb718873db846adccdd93b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 23 Jun 2006 04:27:55 +0000 Subject: [PATCH] Fixed bug #147 Only enable Unicode key events if Unicode translation is enabled. --- src/video/quartz/SDL_QuartzEvents.m | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/video/quartz/SDL_QuartzEvents.m b/src/video/quartz/SDL_QuartzEvents.m index 1629a5650..b18598c66 100644 --- a/src/video/quartz/SDL_QuartzEvents.m +++ b/src/video/quartz/SDL_QuartzEvents.m @@ -260,23 +260,27 @@ static void QZ_DoKey (_THIS, int state, NSEvent *event) { contains multiple characters, we'll use 0 as the scancode/keysym. */ - chars = [ event characters ]; - numChars = [ chars length ]; - - if (numChars == 1) { + if (SDL_TranslateUNICODE) { + chars = [ event characters ]; + numChars = [ chars length ]; + } else { + numChars = 0; + } + if (numChars == 0) { + key.scancode = [ event keyCode ]; key.sym = keymap [ key.scancode ]; - key.unicode = [ chars characterAtIndex:0 ]; + key.unicode = 0; key.mod = KMOD_NONE; SDL_PrivateKeyboard (state, &key); } - else if (numChars == 0) { - + else if (numChars == 1) { + key.scancode = [ event keyCode ]; key.sym = keymap [ key.scancode ]; - key.unicode = 0; + key.unicode = [ chars characterAtIndex:0 ]; key.mod = KMOD_NONE; SDL_PrivateKeyboard (state, &key);