<AWT Dev> [9] Review request for 8065739 [macosx] Frame warps to lower left of screen when displayed
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Fri May 8 12:28:31 UTC 2015
Hello,
Could you review the updated fix:
http://cr.openjdk.java.net/~alexsch/8065739/webrev.03
- The -windowWillUseStandardFrame:defaultFrame: method is implemented
in AWTWindow to correctly get and check a size of the maximized window.
After that the -isZoomed method correctly defines the zoomed state
for both visible and not visible window.
Thanks,
Alexandr.
On 4/29/2015 7:03 PM, Alexander Scherbatiy wrote:
>
> Hello,
>
> Could you review the updated fix:
> http://cr.openjdk.java.net/~alexsch/8065739/webrev.02
>
> - the zoom state is applied after NSWindow creation if Frame has
> MAXIMIZED_BOTH state.
>
> Thanks,
> Alexandr.
>
> On 4/15/2015 10:57 PM, Sergey Bylokhov wrote:
>> Hi, Alexander.
>> As far as I understand the main issue is that we get a native
>> notifications during window initialization(after nswindows was
>> created and before zoom method will be called)? Probably we can apply
>> the zoom state when we create a window in one appkit call?
>>
>> On 08.04.15 17:54, Alexander Scherbatiy wrote:
>>> Hello,
>>>
>>> Could you review the fix:
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8065739
>>> webrev: http://cr.openjdk.java.net/~alexsch/8065739/webrev.00
>>>
>>> Use case:
>>> ------------
>>> Frame frame = new Frame();
>>> frame.pack();
>>> frame.setBounds(screenBounds);
>>> frame.setVisible(true);
>>> ------------
>>>
>>> The frame is in the normal state but Mac OS X treats a frame with
>>> screen bounds as zoomed.
>>> The setVisible() method calls unmaximize() method to return the
>>> zoomed window to the normal state.
>>> The native zoom() method sets the initial sizes for the window
>>> which are zero because of the pack() call.
>>>
>>>
>>> There is already checkZoom() method which synchronizes native
>>> window zoom state and and the frame extended state when a frame is
>>> resized by mouse.
>>> However it can't be always used for the synchronization between
>>> native window zoom state and setBounds() call because of the
>>> following case:
>>>
>>> -----------------
>>> Frame frame = new Frame();
>>> frame.setBounds(smallBounds);
>>> frame.setExtendedState(Frame.MAXIMIZED_BOTH);
>>> frame.setVisible(true);
>>> -----------------
>>>
>>> This is the valid scenario where the frame should be maximized.
>>>
>>> The solution synchronizes the zoom and the frame state only when
>>> the native window is zoomed.
>>> In opposite case we need to return from the zoomed sizes to
>>> previous sizes which are the same as for the zoomed window.
>>>
>>> Thanks,
>>> Alexandr.
>>>
>>
>>
>
More information about the awt-dev
mailing list