hg: macosx-port/macosx-port/jdk: Fixed problem with windows not being ordered out

Mike Swingler swingler at apple.com
Fri Sep 30 07:54:33 PDT 2011


The disposal is not happening on the EDT. It's simply happening after the organic setVisible(false) that comes after the peer disposal. The actual calls in native to -[NSWindow orderOut] and CFRelease() are still happening on the AppKit main thread - they are just happening in different order.

Apparently, releasing an NSWindow before ordering it out causes the underlying native window resource to get "stuck" on screen, because AppKit has lost connection to it. :-/

Regards,
Mike Swingler
Java Engineering
Apple Inc.

On Sep 30, 2011, at 6:29 AM, Leonid Romanov wrote:

> Hi Bino!
> Is there a Jira issue that has been fixed by this commit? I'm asking because your commit has also fixed an issue that I've been working on: http://java.net/jira/browse/MACOSX_PORT-429 
> In order to fix that issue, I'm too had to choose between doing some stuff on EDT or moving it off from it. Unlike you, however, I've chosen  to move platformWindow.setVisible(visible) call off EDT (I haven't committed that change and with your fix probably won't). So, I wonder, why did you decide that in your case it was better to do window ordering on EDT?
> 
> Thanks,
> Leonid.
> 
> On Sep 30, 2011, at 5:40 AM, bino at apple.com wrote:
> 
>> Changeset: 3ec0824a2d29
>> Author:    bino at apple.com
>> Date:      2011-09-29 18:40 -0700
>> URL:       http://hg.openjdk.java.net/macosx-port/macosx-port/jdk/rev/3ec0824a2d29
>> 
>> Fixed problem with windows not being ordered out
>> 
>> ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
>> 
> 



More information about the macosx-port-dev mailing list