[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:15:42 PDT 2012
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