<AWT Dev> [9] Review request for 8065739 [macosx] Frame warps to lower left of screen when displayed

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri May 15 11:30:57 UTC 2015


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?

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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20150515/4078392a/attachment.html>


More information about the awt-dev mailing list