src/video/quartz/SDL_QuartzEvents.m
changeset 1876 406b8325ee34
parent 1629 ef4a796e7f24
child 1895 c121d94672cb
child 3914 4fd12011d8d6
equal deleted inserted replaced
1875:4627eca2c02b 1876:406b8325ee34
   258         will contain a single character. If it contains
   258         will contain a single character. If it contains
   259         0 characters, we'll use 0 as the unicode. If it
   259         0 characters, we'll use 0 as the unicode. If it
   260         contains multiple characters, we'll use 0 as
   260         contains multiple characters, we'll use 0 as
   261         the scancode/keysym.
   261         the scancode/keysym.
   262     */
   262     */
   263     chars = [ event characters ];
   263     if (SDL_TranslateUNICODE) {
   264     numChars = [ chars length ];
   264         chars = [ event characters ];
   265 
   265         numChars = [ chars length ];
   266     if (numChars == 1) {
   266     } else {
   267 
   267         numChars = 0;
   268         key.scancode = [ event keyCode ];
   268     }
   269         key.sym      = keymap [ key.scancode ];
   269 
   270         key.unicode  = [ chars characterAtIndex:0 ];
   270     if (numChars == 0) {
   271         key.mod      = KMOD_NONE;
       
   272 
       
   273         SDL_PrivateKeyboard (state, &key);
       
   274     }
       
   275     else if (numChars == 0) {
       
   276       
   271       
   277         key.scancode = [ event keyCode ];
   272         key.scancode = [ event keyCode ];
   278         key.sym      = keymap [ key.scancode ];
   273         key.sym      = keymap [ key.scancode ];
   279         key.unicode  = 0;
   274         key.unicode  = 0;
       
   275         key.mod      = KMOD_NONE;
       
   276 
       
   277         SDL_PrivateKeyboard (state, &key);
       
   278     }
       
   279     else if (numChars == 1) {
       
   280 
       
   281         key.scancode = [ event keyCode ];
       
   282         key.sym      = keymap [ key.scancode ];
       
   283         key.unicode  = [ chars characterAtIndex:0 ];
   280         key.mod      = KMOD_NONE;
   284         key.mod      = KMOD_NONE;
   281 
   285 
   282         SDL_PrivateKeyboard (state, &key);
   286         SDL_PrivateKeyboard (state, &key);
   283     }
   287     }
   284     else /* (numChars > 1) */ {
   288     else /* (numChars > 1) */ {