Review request for 7132809: [macosx] MAXIMIZED_BOTH set before setVisible(true) hides Frame

Anthony Petrov anthony.petrov at oracle.com
Mon Jan 30 06:15:49 PST 2012


Hi Artem,

Thanks for the review.

On 01/30/12 14:51, Artem Ananiev wrote:
> the fix looks fine.
>
> A minor comment: can we use peer.getState() instead of (instanceof check
> + target.getExtendedState()) in CPlatformWindow.setVisible()?

The LWWindowPeer.getState() returns the LWWindowPeer.windowState field 
that gets updated only from native notifications 
(notifyIconify()/notifyZoom()). While the window is hidden, the state 
isn't changed, and as such the notifications aren't sent which makes the 
windowState field value stale.

As soon as the CPlatformWindow.setVisible(true) is called it needs to 
read the real current state of the frame, and since the peer's cached 
value is wrong, we read the state from the target.

--
best regards,
Anthony

>
> Thanks,
>
> Artem
>
> On 1/26/2012 7:41 PM, Anthony Petrov wrote:
>> Hello,
>>
>> Please review a fix for http://bugs.sun.com/view_bug.do?bug_id=7132809
>> at:
>>
>> http://cr.openjdk.java.net/~anthony/x-11-MaximizedBoth-7132809.0/
>>
>> We shouldn't apply the extended state when a window is hidden. With this
>> fix the CPlatformWindow.setVisible() re-applies the state when the
>> window gets shown.
>>
>> --
>> best regards,
>> Anthony


More information about the macosx-port-dev mailing list