<AWT Dev> [9] Review request for 8065739 [macosx] Frame warps to lower left of screen when displayed
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Wed May 20 15:59:31 UTC 2015
On 5/15/2015 2:30 PM, Sergey Bylokhov wrote:
> Hi, Alexander.
> A few notes:
> - _peer.setMaximizedBounds(_peer.getMaximizedBounds()); this line
> looks odd, probably we can call updateMaximizedBounds in LWWindowPeer.
> initializeImpl()?
> - Do we need to call maximize(); in the initialize() or we can leave
> it in the setVisible()? It seems that after we set
> NSWindowStandardFrame isZoomed should work properly in the callback?
> - Why we cannot return DefaultMaximizedBounds from the
> getMaximizedBounds if it was not set? Then it will not be necessary to
> check it to null everywhere.
> - Can we call updateMaximizedBounds(); in
> LWWindowPeer.displayChanged() only in case of new device?
>
Could you review the updated fix:
http://cr.openjdk.java.net/~alexsch/8065739/webrev.05
The fix has been updated according to the comments.
Thanks,
Alexandr.
> On 14.05.15 12:40, Alexander Scherbatiy wrote:
>> On 5/12/2015 4:44 PM, Alexander Scherbatiy wrote:
>>>
>>> Could you review the updated fix:
>>> - maximized bounds are updated after switching to new screen if they
>>> are not set by a user
>>> - the test for the maximized window moved from one screen to another
>>> is added
>> Sorry. Just forgot to add the webrev link:
>> http://cr.openjdk.java.net/~alexsch/8065739/webrev.04/
>>
>> Thanks,
>> Alexandr.
>>
>>>
>>>
>>> Thanks,
>>> Alexandr.
>>>
>>> On 5/8/2015 3:42 PM, Sergey Bylokhov wrote:
>>>> Hi, Alexander.
>>>> Does the new tests cover all corner cases which we discussed offline?
>>>>
>>>> On 08.05.15 15:28, Alexander Scherbatiy wrote:
>>>>>
>>>>> 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.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>
>
> --
> Best regards, Sergey.
More information about the awt-dev
mailing list