[7u4-osx] Request for approval for 7124554: [macosx] JWindow does ignore setAlwaysOnTop property
Anthony Petrov
anthony.petrov at oracle.com
Fri Jan 13 10:08:29 PST 2012
[ BCC'ing jdk7u-dev at . I'll resend the request once we settle down all
technical issues. ]
Hi Mike,
I'm sorry but I don't see this claim valid. Please let me explain:
1. AWT puts always-on-top windows on the NSFloatingWindowLevel level.
This is done in AWTWindow.m. Please note that:
a) this fix does not alter this file in any way. I.e. I'm not
changing the way this feature is already implemented.
b) the NSFloatingWindowLevel isn't above anything but the
NSNormalWindowLevel only (on which all non-always-on-top Java windows
reside). In other words, the floating level is well below the dock,
menus, and everything else you've listed. Please see [1] for details.
2. This fix deals with a particular case when an owned window is made an
always-on-top window. The -addChildWindow: would reset the level of such
a window back to normal, and with this fix we just set it back to the
original value (floating) since the window should be always-on-top
according to Java specification. Note that the fix doesn't changes the
level to any arbitrary value, but simply restores it to what it already
was set just before the -addChildWindow: call. Please see my original
review request message at [2] which explains this in more details.
Please clarify whether you still have an issue with this particular fix.
I would appreciate to see more specific details on what exactly (line
numbers/code snippets of the parts that are modified) is wrong with the
fix at [3].
[1]
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Window_Levels
[2]
http://mail.openjdk.java.net/pipermail/macosx-port-dev/2012-January/002139.html
[3] http://cr.openjdk.java.net/~anthony/x-6-alwaysOnTop.0/
--
best regards,
Anthony
On 1/13/2012 9:27 PM, Mike Swingler wrote:
> On Jan 13, 2012, at 5:23 AM, Anthony Petrov wrote:
>
>> [ resending and CC'ing macosx-port-dev@ this time ]
>>
>> This is a request to push the following fix to jdk7u-osx:
>>
>> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124554
>>
>> Webrev: http://cr.openjdk.java.net/~anthony/x-6-alwaysOnTop.0/
>>
>> Technical review:
>> http://mail.openjdk.java.net/pipermail/macosx-port-dev/2012-January/002139.html
>
> I don't agree that this fix should be integrated. You are allowing ordinary windows to go way above the popup, menu bar, modal window, and even the dock...you should simply use the NSNormalWIndowLevel and add single integral values to it. Otherwise you Java windows are going to be floating on top over everything else on the desktop.
>
> The named constants are only for when you need to make some windows float just above or just below one of those named levels.
>
> Please do not integrate this fix as is,
> Mike Swingler
> Apple Inc.
>
More information about the jdk7u-dev
mailing list