Hello,

Please review a fix for http://bugs.sun.com/view_bug.do?bug_id=8005465 at:

http://cr.openjdk.java.net/~anthony/8-52-startOnFirstThreadCheck-8005465.0/

With this fix AWT can be embedded into other GUI toolkits. Specifically, this fix is needed in order to be able to initialize and run AWT after an FX application has already been started.

We achieve this by:

1. Eliminating a check for the -XstartOnFirstThread presence. It doesn't make sense to check this flag because the AWT initializer is able to do its job on any thread anyway. The only change in logic is that we no longer call the NSApplicationLoad() function, but it isn't necessary since we're not going to be embedded into a Carbon app anyway - all modern toolkits are Cocoa-based, and we assume that the embedder has already created its NSApplication instance. If not, well, they'll have to live with the NSApplicationAWT then.

2. Introducing an AWTKeepAlive thread activated in the embedded mode only. This thread will send an event to the native event queue every 500ms as long as there are active AWT objects present. This activity will notify the embedder toolkit that the Java application as a whole is still alive and needs not exit yet.

--
best regards,
Anthony

Reply via email to