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;
}