src/macosx/native/sun/awt/AWTEvent.m

Print this page

        

*** 242,309 **** NSUInteger nsMask; //NSUInteger cgsLeftMask; //NSUInteger cgsRightMask; unsigned short leftKeyCode; unsigned short rightKeyCode; jint javaMask; jint javaKey; } const nsKeyToJavaModifierTable[] = { { NSAlphaShiftKeyMask, 0, 0, 0, // no Java equivalent java_awt_event_KeyEvent_VK_CAPS_LOCK }, { NSShiftKeyMask, //kCGSFlagsMaskAppleShiftKey, //kCGSFlagsMaskAppleRightShiftKey, 56, 60, java_awt_event_InputEvent_SHIFT_DOWN_MASK, java_awt_event_KeyEvent_VK_SHIFT }, { NSControlKeyMask, //kCGSFlagsMaskAppleControlKey, //kCGSFlagsMaskAppleRightControlKey, 59, 62, java_awt_event_InputEvent_CTRL_DOWN_MASK, java_awt_event_KeyEvent_VK_CONTROL }, { NSAlternateKeyMask, //kCGSFlagsMaskAppleLeftAlternateKey, //kCGSFlagsMaskAppleRightAlternateKey, 58, 61, java_awt_event_InputEvent_ALT_DOWN_MASK, java_awt_event_KeyEvent_VK_ALT }, { NSCommandKeyMask, //kCGSFlagsMaskAppleLeftCommandKey, //kCGSFlagsMaskAppleRightCommandKey, 55, 54, java_awt_event_InputEvent_META_DOWN_MASK, java_awt_event_KeyEvent_VK_META }, // NSNumericPadKeyMask { NSHelpKeyMask, 0, 0, 0, // no Java equivalent java_awt_event_KeyEvent_VK_HELP }, // NSFunctionKeyMask ! {0, 0, 0, 0, 0} }; /* * 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. --- 242,316 ---- NSUInteger nsMask; //NSUInteger cgsLeftMask; //NSUInteger cgsRightMask; unsigned short leftKeyCode; unsigned short rightKeyCode; + jint javaExtMask; jint javaMask; jint javaKey; } const nsKeyToJavaModifierTable[] = { { NSAlphaShiftKeyMask, 0, 0, 0, // no Java equivalent + 0, // no Java equivalent java_awt_event_KeyEvent_VK_CAPS_LOCK }, { NSShiftKeyMask, //kCGSFlagsMaskAppleShiftKey, //kCGSFlagsMaskAppleRightShiftKey, 56, 60, java_awt_event_InputEvent_SHIFT_DOWN_MASK, + java_awt_event_InputEvent_SHIFT_MASK, java_awt_event_KeyEvent_VK_SHIFT }, { NSControlKeyMask, //kCGSFlagsMaskAppleControlKey, //kCGSFlagsMaskAppleRightControlKey, 59, 62, java_awt_event_InputEvent_CTRL_DOWN_MASK, + java_awt_event_InputEvent_CTRL_MASK, java_awt_event_KeyEvent_VK_CONTROL }, { 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, java_awt_event_InputEvent_META_DOWN_MASK, + java_awt_event_InputEvent_META_MASK, java_awt_event_KeyEvent_VK_META }, // NSNumericPadKeyMask { NSHelpKeyMask, 0, 0, 0, // no Java equivalent + 0, // no Java equivalent java_awt_event_KeyEvent_VK_HELP }, // NSFunctionKeyMask ! {0, 0, 0, 0, 0, 0} }; /* * 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.
*** 489,517 **** } /* * This returns the java modifiers for a key NSEvent. */ ! static jint ! NsKeyModifiersToJavaModifiers(NSUInteger nsFlags) { jint javaModifiers = 0; const struct _nsKeyToJavaModifier* cur; for (cur = nsKeyToJavaModifierTable; cur->nsMask != 0; ++cur) { if ((cur->nsMask & nsFlags) != 0) { ! javaModifiers |= cur->javaMask; } } return javaModifiers; } jint GetJavaMouseModifiers(NSInteger button, NSUInteger modifierFlags) { // Mousing needs the key modifiers ! jint modifiers = NsKeyModifiersToJavaModifiers(modifierFlags); /* * Ask Quartz about mouse buttons state */ --- 496,550 ---- } /* * This returns the java modifiers for a key NSEvent. */ ! jint NsKeyModifiersToJavaModifiers(NSUInteger nsFlags, BOOL isExtMods) { 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; } + /* + * This returns the NSEvent flags for java key modifiers. + */ + NSUInteger JavaModifiersToNsKeyModifiers(jint javaModifiers, BOOL isExtMods) + { + NSUInteger nsFlags = 0; + const struct _nsKeyToJavaModifier* cur; + + for (cur = nsKeyToJavaModifierTable; cur->nsMask != 0; ++cur) { + jint mask = isExtMods? cur->javaExtMask : cur->javaMask; + if ((mask & javaModifiers) != 0) { + nsFlags |= cur->nsMask; + } + } + + // special case + jint mask = isExtMods? java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK : + java_awt_event_InputEvent_ALT_GRAPH_MASK; + + if ((mask & javaModifiers) != 0) { + nsFlags |= NSAlternateKeyMask; + } + + return nsFlags; + } + + jint GetJavaMouseModifiers(NSInteger button, NSUInteger modifierFlags) { // Mousing needs the key modifiers ! jint modifiers = NsKeyModifiersToJavaModifiers(modifierFlags, YES); /* * Ask Quartz about mouse buttons state */
*** 588,598 **** { jint jmodifiers = 0; JNF_COCOA_ENTER(env); ! jmodifiers = NsKeyModifiersToJavaModifiers(modifierFlags); JNF_COCOA_EXIT(env); return jmodifiers; } --- 621,631 ---- { jint jmodifiers = 0; JNF_COCOA_ENTER(env); ! jmodifiers = NsKeyModifiersToJavaModifiers(modifierFlags, YES); JNF_COCOA_EXIT(env); return jmodifiers; }