< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/AWTEvent.m

Print this page

        

*** 280,295 **** { NSAlternateKeyMask, //kCGSFlagsMaskAppleLeftAlternateKey, //kCGSFlagsMaskAppleRightAlternateKey, 58, ! 61, java_awt_event_InputEvent_ALT_DOWN_MASK, java_awt_event_InputEvent_ALT_MASK, java_awt_event_KeyEvent_VK_ALT }, { NSCommandKeyMask, //kCGSFlagsMaskAppleLeftCommandKey, //kCGSFlagsMaskAppleRightCommandKey, 55, 54, --- 280,303 ---- { NSAlternateKeyMask, //kCGSFlagsMaskAppleLeftAlternateKey, //kCGSFlagsMaskAppleRightAlternateKey, 58, ! 0, java_awt_event_InputEvent_ALT_DOWN_MASK, java_awt_event_InputEvent_ALT_MASK, java_awt_event_KeyEvent_VK_ALT }, { + NSAlternateKeyMask, + 0, + 61, + java_awt_event_InputEvent_ALT_DOWN_MASK | java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK, + java_awt_event_InputEvent_ALT_MASK | java_awt_event_InputEvent_ALT_GRAPH_MASK, + java_awt_event_KeyEvent_VK_ALT + }, + { NSCommandKeyMask, //kCGSFlagsMaskAppleLeftCommandKey, //kCGSFlagsMaskAppleRightCommandKey, 55, 54,
*** 308,317 **** --- 316,327 ---- }, // NSFunctionKeyMask {0, 0, 0, 0, 0, 0} }; + static BOOL leftAltKeyPressed; + /* * Almost all unicode characters just go from NS to Java with no translation. * For the few exceptions, we handle it here with this small table. */ #define ALL_NS_KEY_MODIFIERS_MASK \
*** 520,537 **** --- 530,553 ---- //if (changedNSFlags & cur->cgsLeftMask) { // *javaKeyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT; //} else if (changedNSFlags & cur->cgsRightMask) { // *javaKeyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT; //} + if (eventKeyCode == cur->leftKeyCode) { + leftAltKeyPressed = YES; *javaKeyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT; } else if (eventKeyCode == cur->rightKeyCode) { *javaKeyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT; + } else if (cur->nsMask == NSAlternateKeyMask) { + leftAltKeyPressed = NO; + continue; } *javaKeyType = (cur->nsMask & nsFlags) ? java_awt_event_KeyEvent_KEY_PRESSED : java_awt_event_KeyEvent_KEY_RELEASED; + break; } } }
*** 543,553 **** jint javaModifiers = 0; const struct _nsKeyToJavaModifier* cur; for (cur = nsKeyToJavaModifierTable; cur->nsMask != 0; ++cur) { if ((cur->nsMask & nsFlags) != 0) { ! javaModifiers |= isExtMods? cur->javaExtMask : cur->javaMask; } } return javaModifiers; } --- 559,573 ---- jint javaModifiers = 0; const struct _nsKeyToJavaModifier* cur; for (cur = nsKeyToJavaModifierTable; cur->nsMask != 0; ++cur) { if ((cur->nsMask & nsFlags) != 0) { ! javaModifiers |= isExtMods ? cur->javaExtMask : cur->javaMask; ! if (cur->nsMask == NSAlternateKeyMask && leftAltKeyPressed == NO) { ! continue; ! } ! break; } } return javaModifiers; }
< prev index next >