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

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Thu May 21 15:24:26 UTC 2015


Hi Alexandr,

the fix looks fine to me too.

--
Thanks,
Alexander.

On 21.05.2015 15:18, Sergey Bylokhov wrote:
> Hi, Alexander.
> The fix looks fine.
>
> On 20.05.15 18:59, Alexander Scherbatiy wrote:
>>
>> 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