Review request for 7132809: [macosx] MAXIMIZED_BOTH set before setVisible(true) hides Frame
Artem Ananiev
artem.ananiev at oracle.com
Mon Jan 30 06:41:03 PST 2012
On 1/30/2012 6:15 PM, Anthony Petrov wrote:
> 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.
I'm not sure about it. What I see is that LWWindowPeer.setState() is
called from Frame:
FramePeer peer = (FramePeer)this.peer;
if (peer != null) {
peer.setState(state);
}
At the same time, I don't see where LWWindowPeer.setState() is called
from CPlatformWindow.
Thanks,
Artem
> 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