[7u6] request for review: 7124328: [macosx] javax.swing.JDesktopPane.getAllFramesInLayer returns unexpected value
Anthony Petrov
anthony.petrov at oracle.com
Tue Apr 17 06:08:08 PDT 2012
Hi Alex,
The fix looks good to me.
Though if I were you, I would add an argument to the new static method
to allow for inclusion of internal frame from a specified layer only, or
all layers if the argument is equal to e.g. MAX_INT. This way we could
avoid adding and then removing some of the found frames to/from the
collection.
--
best regards,
Anthony
On 4/16/2012 10:30 PM, Alexander Potochkin wrote:
> Hello Anthony
>
> Thanks for reviewing it, here is the new version:
>
> http://cr.openjdk.java.net/~alexp/7124328/webrev.01/
>
>> Hi Alex,
>>
>> It seems like the new private getAllFrames(Contianer) method may be
>> declared as static. Also I suggest to insert spaces between "if"s and
>> "("s at lines 275, 277, and 282. Otherwise the changes look good.
>
> fixed
>
>>
>> BTW, do we have any regression tests for this method? Do they pass?
>
> It's a pretty good question
> :-)
>
> There is no regression tests for JDesktopPane.getAllFrames()
> but I've found a regression test for the old bug 4132993 which fixes the
> problem with
> JDesktopPane.getAllFramesInLayer().
>
> This method also should return iconified frames in a specified layer,
> it didn't work for Aqua so I fixed it as well
>> What about the performance regression caused by iterating over the
>> inner containers?
>
> No observable performance regression.
>
> Thanks
> alexp
>>
>> --
>> best regards,
>> Anthony
>>
>> On 4/10/2012 9:25 PM, Alexander Potochkin wrote:
>>> Hello
>>>
>>> Please review the following fix:
>>> http://cr.openjdk.java.net/~alexp/7124328/webrev.00/
>>>
>>> for this bug:
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124328
>>>
>>> the spec for the method
>>> javax.swing.JDesktopPane.getAllFrames()
>>>
>>> says
>>>
>>> * Returns all <code>JInternalFrames</code> currently displayed in the
>>> * desktop. Returns iconified frames as well as expanded frames.
>>>
>>> but the AquaLookAndFeel on MacOS uses a special container for the
>>> minimized internal frames
>>> and that's why the current implementation doesn't see them
>>>
>>> the proposed fix recursively looks for the internal frames
>>> among the JDesktopPane's children
>>>
>>> the test can be found here:
>>> http://java.net/jira/browse/MACOSX_PORT-557
>>>
>>> Thanks
>>> alexp
>
More information about the macosx-port-dev
mailing list