[8] Review request for 7177173: [macosx] JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH) not working as expected in JDK 7
Anthony Petrov
anthony.petrov at oracle.com
Wed Jul 4 08:30:12 PDT 2012
Hi Sergey,
Please find an updated webrev at:
http://cr.openjdk.java.net/~anthony/8-36-MaximizedBoth-7177173.2/
I renamed the local variable from isZoomed to doZoom.
--
best regards,
Anthony
On 7/4/2012 7:26 PM, Sergey Bylokhov wrote:
> Hi,Anthony.
> I just point to the same name "isZoomed", which contains different state:
> first is "true" for this.normalBounds == null and the second "true" for
> this.normalBounds != null.
> This is strange.
> I believe that correct code should be isZoomed = isZoomed();?
>
> 04.07.2012 19:15, Anthony Petrov wrote:
>> Hi Sergey,
>>
>> Thanks for the review.
>>
>> On 7/4/2012 7:07 PM, Sergey Bylokhov wrote:
>>> Why there are two different methods for isZoomed?
>>>
>>> 481 final boolean isZoomed = *this.normalBounds == null*;
>>
>> Here we determine a new state that needs to be set to an undecorated
>> window. This is what isZoomed() will return after the zoom() method
>> returns.
>>
>>> But in the method we use another code.
>>>
>>> 471 private boolean isZoomed() {
>>> 472 return zoomed || *this.normalBounds != null*;
>>> 473 }
>>
>> This is a method that returns the current zoomed state for any window
>> regardless whether it is decorated or not.
>>
>>> Probably it can be unified?
>>
>> No. These are completely different operations. We might change the
>> first line to "final boolean isZoomed = !isZoomed();", but the current
>> code looks a lot clearer to me.
>>
>> --
>> best regards,
>> Anthony
>>
>>
>>>
>>>
>>> 04.07.2012 18:54, Anthony Petrov wrote:
>>>> Hello,
>>>>
>>>> Please review a fix for
>>>> http://bugs.sun.com/view_bug.do?bug_id=7177173 at:
>>>>
>>>> http://cr.openjdk.java.net/~anthony/8-36-MaximizedBoth-7177173.1/
>>>>
>>>> The bug synopsis may sound misleading: the original problem with
>>>> applying the extended state after showing a frame has been resolved
>>>> a while back with another fix. The only issue currently left is that
>>>> the state is reset when a frame is disposed/hidden, which prevents
>>>> apps from tracking the last known state of a window.
>>>>
>>>> With this fix we avoid canceling/reapplying the maximized state to
>>>> windows on each showing/hiding operation. Instead we track the state
>>>> in the CPlatformWindow instance, and apply it on showing of the
>>>> window if the state differs from what shared code expects. The
>>>> behavior now matches that of Apple JDK (including handling of the
>>>> ICONIFIED state).
>>>>
>>>> --
>>>> best regards,
>>>> Anthony
>>>
>>>
>>> --
>>> Best regards, Sergey.
>
>
More information about the macosx-port-dev
mailing list