<AWT Dev> [8] Review request for 7177173: [macosx] JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH) not working as expected in JDK 7

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Jul 5 02:29:42 PDT 2012


Hi, Anthony.
Fix looks good.

04.07.2012 19:30, Anthony Petrov wrote:
> 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.
>>
>>


-- 
Best regards, Sergey.




More information about the awt-dev mailing list