Run some Cocoa methods in nCreateWindow on the main thread (Thread-0) instead of the JNI thread.

This commit is contained in:
kappa1 2012-11-11 15:48:08 +00:00
parent 49f92189ec
commit f7012a3020
1 changed files with 8 additions and 4 deletions

View File

@ -430,10 +430,14 @@ JNIEXPORT jobject JNICALL Java_org_lwjgl_opengl_MacOSXDisplay_nCreateWindow(JNIE
[window_info->view setParent:window_info];
[window_info->window setContentView:window_info->view];
[window_info->window makeKeyAndOrderFront:[NSApplication sharedApplication]];
[window_info->window makeFirstResponder:window_info->view];
[window_info->window setReleasedWhenClosed:YES];
[window_info->window setInitialFirstResponder:window_info->view];
//[window_info->window makeKeyAndOrderFront:[NSApplication sharedApplication]];
//[window_info->window makeFirstResponder:window_info->view];
//[window_info->window setReleasedWhenClosed:YES];
//[window_info->window setInitialFirstResponder:window_info->view];
[window_info->window performSelectorOnMainThread:@selector(makeKeyAndOrderFront:) withObject:[NSApplication sharedApplication] waitUntilDone:NO];
[window_info->window performSelectorOnMainThread:@selector(makeFirstResponder:) withObject:window_info->view waitUntilDone:NO];
[window_info->window performSelectorOnMainThread:@selector(setReleasedWhenClosed:) withObject:window_info->window waitUntilDone:NO];
[window_info->window performSelectorOnMainThread:@selector(setInitialFirstResponder:) withObject:window_info->view waitUntilDone:NO];
if (window_info->window_options != NSApplicationPresentationDefault) {
printf("Non-default\n"); fflush(stdout);