Looks fine.

> 
> Hi Sergey,
> Thank you for the review.
> 
> Actually deliverMoveResizeEvent() is always called once a window is 
> displayed. If the window is created using max W/H of the screen, the function 
> will be invoked and isZoomed field will contain the correct value. I have 
> just checked that.
> 
> Thanks,
> Dmitry
>> On 23 Mar 2017, at 16:36, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote:
>> 
>> Hi, Dmitry.
>> Can you please check that the fix does not break the situation when the 
>> frame is created using max W/H of the screen. In this case the old zoom 
>> logic return true, is it possible that the new logic will return false since 
>> deliverMoveResizeEvent
>> will not be called?
>> 
>>> 
>>> 
>>> Hello,
>>> 
>>> Could you review a fix for jdk9, please?
>>> 
>>>     bug: https://bugs.openjdk.java.net/browse/JDK-8176490
>>>     webrev: http://cr.openjdk.java.net/~dmarkov/8176490/webrev.00/
>>> 
>>> Problem description:
>>> On OSX AppKit thread and EDT or main application thread might be blocked 
>>> when a child window is displayed and its parent is hidden at the same time. 
>>> AppKit thread performs windows ordering caused by displaying of the child 
>>> window. It retrieves child windows for the parent window and tries to 
>>> acquire the monitor inside Window.getOwnedWindows_NoClientCode(). However 
>>> the monitor is already owned by EDT/main application thread which executes 
>>> setVisible(false) on the parent window. That thread hangs on invocation of 
>>> CWrapper.NSWindow.isZoomed() since the function must be executed on AppKit 
>>> thread.
>>> 
>>> Fix:
>>> Add a new field isZoomed to CPlatformWindow class. The field will contain 
>>> information about current zoom state for the window. The method 
>>> deliverMoveResizeEvent() will update the new field using data from the 
>>> platform. The invocations of CWrapper.NSWindow.isZoomed() in 
>>> CPlatformWindow should be replaced with isZoomed field. 
>>> 
>>> Note: I ran JCK tests on the build with fix and did not observe any new 
>>> problems.
>>> 
>>> Thanks,
>>> Dmitry
>> 
> 

Reply via email to