1128 */ 1129 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMouseEnteredExitedEvents 1130 (JNIEnv *env, jclass clazz, jlong windowPtr) 1131 { 1132 JNF_COCOA_ENTER(env); 1133 AWT_ASSERT_NOT_APPKIT_THREAD; 1134 1135 NSWindow *nsWindow = OBJC(windowPtr); 1136 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1137 AWT_ASSERT_APPKIT_THREAD; 1138 AWTWindow *window = (AWTWindow*)[nsWindow delegate]; 1139 1140 [window synthesizeMouseEnteredExitedEvents]; 1141 }]; 1142 1143 JNF_COCOA_EXIT(env); 1144 } 1145 1146 /* 1147 * Class: sun_lwawt_macosx_CPlatformWindow 1148 * Method: nativeGetDisplayID_AppKitThread 1149 * Signature: (J)I 1150 */ 1151 JNIEXPORT jint JNICALL 1152 Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID 1153 (JNIEnv *env, jclass clazz, jlong windowPtr) 1154 { 1155 __block jint ret; // CGDirectDisplayID 1156 1157 JNF_COCOA_ENTER(env); 1158 1159 NSWindow *window = OBJC(windowPtr); 1160 1161 if ([NSThread isMainThread]) { 1162 ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue]; 1163 } else { 1164 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 1165 ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue]; 1166 }]; 1167 } 1168 1169 JNF_COCOA_EXIT(env); 1170 1171 return ret; 1172 } 1173 1174 /* 1175 * Class: sun_lwawt_macosx_CPlatformWindow 1176 * Method: _toggleFullScreenMode 1177 * Signature: (J)V 1178 */ 1179 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow__1toggleFullScreenMode 1180 (JNIEnv *env, jobject peer, jlong windowPtr) 1181 { 1182 JNF_COCOA_ENTER(env); 1183 1184 NSWindow *nsWindow = OBJC(windowPtr); 1185 SEL toggleFullScreenSelector = @selector(toggleFullScreen:); 1186 if (![nsWindow respondsToSelector:toggleFullScreenSelector]) return; 1187 1188 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1189 [nsWindow performSelector:toggleFullScreenSelector withObject:nil]; 1190 }]; 1191 1192 JNF_COCOA_EXIT(env); 1193 } 1194 1195 JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_CMouseInfoPeer_nativeIsWindowUnderMouse 1196 (JNIEnv *env, jclass clazz, jlong windowPtr) 1197 { 1198 __block jboolean underMouse = JNI_FALSE; 1199 1200 JNF_COCOA_ENTER(env); 1201 AWT_ASSERT_NOT_APPKIT_THREAD; 1202 1203 NSWindow *nsWindow = OBJC(windowPtr); 1204 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^() { 1205 AWT_ASSERT_APPKIT_THREAD; 1206 1207 NSPoint pt = [nsWindow mouseLocationOutsideOfEventStream]; 1208 underMouse = [[nsWindow contentView] hitTest:pt] != nil; 1209 }]; 1210 1211 JNF_COCOA_EXIT(env); 1212 1213 return underMouse; 1214 } 1215 1216 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetEnabled 1217 (JNIEnv *env, jclass clazz, jlong windowPtr, jboolean isEnabled) 1218 { 1219 JNF_COCOA_ENTER(env); 1220 1221 NSWindow *nsWindow = OBJC(windowPtr); 1222 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1223 AWTWindow *window = (AWTWindow*)[nsWindow delegate]; 1224 1225 [window setEnabled: isEnabled]; 1226 }]; 1227 1228 JNF_COCOA_EXIT(env); 1229 } 1230 1231 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeDispose 1232 (JNIEnv *env, jclass clazz, jlong windowPtr) 1233 { 1234 JNF_COCOA_ENTER(env); 1235 | 1128 */ 1129 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMouseEnteredExitedEvents 1130 (JNIEnv *env, jclass clazz, jlong windowPtr) 1131 { 1132 JNF_COCOA_ENTER(env); 1133 AWT_ASSERT_NOT_APPKIT_THREAD; 1134 1135 NSWindow *nsWindow = OBJC(windowPtr); 1136 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1137 AWT_ASSERT_APPKIT_THREAD; 1138 AWTWindow *window = (AWTWindow*)[nsWindow delegate]; 1139 1140 [window synthesizeMouseEnteredExitedEvents]; 1141 }]; 1142 1143 JNF_COCOA_EXIT(env); 1144 } 1145 1146 /* 1147 * Class: sun_lwawt_macosx_CPlatformWindow 1148 * Method: _toggleFullScreenMode 1149 * Signature: (J)V 1150 */ 1151 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow__1toggleFullScreenMode 1152 (JNIEnv *env, jobject peer, jlong windowPtr) 1153 { 1154 JNF_COCOA_ENTER(env); 1155 1156 NSWindow *nsWindow = OBJC(windowPtr); 1157 SEL toggleFullScreenSelector = @selector(toggleFullScreen:); 1158 if (![nsWindow respondsToSelector:toggleFullScreenSelector]) return; 1159 1160 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1161 [nsWindow performSelector:toggleFullScreenSelector withObject:nil]; 1162 }]; 1163 1164 JNF_COCOA_EXIT(env); 1165 } 1166 1167 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetEnabled 1168 (JNIEnv *env, jclass clazz, jlong windowPtr, jboolean isEnabled) 1169 { 1170 JNF_COCOA_ENTER(env); 1171 1172 NSWindow *nsWindow = OBJC(windowPtr); 1173 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 1174 AWTWindow *window = (AWTWindow*)[nsWindow delegate]; 1175 1176 [window setEnabled: isEnabled]; 1177 }]; 1178 1179 JNF_COCOA_EXIT(env); 1180 } 1181 1182 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeDispose 1183 (JNIEnv *env, jclass clazz, jlong windowPtr) 1184 { 1185 JNF_COCOA_ENTER(env); 1186 |