File tree Expand file tree Collapse file tree 2 files changed +9
-8
lines changed Expand file tree Collapse file tree 2 files changed +9
-8
lines changed Original file line number Diff line number Diff line change @@ -434,12 +434,13 @@ void fb_hCocoaWaitVSync() {
434
434
dispatch_semaphore_wait (vsyncSema, DISPATCH_TIME_FOREVER);
435
435
}
436
436
437
- static inline int translate_key (unsigned char key, int scancode) {
438
- if (key == 0 ) {
439
- return scancode;
440
- } else {
441
- return fb_hScancodeToExtendedKey (scancode);
442
- }
437
+ // TODO: Handle all extended keys properly
438
+ static inline int translate_key (NSEvent * event, int scancode) {
439
+ unsigned char key = [event charactersIgnoringModifiers ].UTF8String [0 ];
440
+ int extendedKey = fb_hScancodeToExtendedKey (scancode);
441
+ if (extendedKey) return extendedKey;
442
+
443
+ return key;
443
444
}
444
445
445
446
static void driver_poll_events () {
@@ -459,7 +460,7 @@ static void driver_poll_events() {
459
460
e.scancode = fb_cocoakeycode_to_scancode[event.keyCode];
460
461
__fb_gfx->key [e.scancode] = TRUE ;
461
462
462
- key = translate_key ([ event charactersIgnoringModifiers ]. UTF8String [ 0 ] , e.scancode );
463
+ key = translate_key (event, e.scancode );
463
464
if (key) {
464
465
fb_hPostKey (key);
465
466
e.ascii = (key > 0 && key < 0xFF ) ? key : 0 ;
Original file line number Diff line number Diff line change 1
1
#include "../fb.h"
2
2
3
- static const int fb_cocoakeycode_to_scancode [] = {
3
+ static const int fb_cocoakeycode_to_scancode [256 ] = {
4
4
[0x35 ] = SC_ESCAPE ,
5
5
[0x7A ] = SC_F1 ,
6
6
[0x78 ] = SC_F2 ,
You can’t perform that action at this time.
0 commit comments