Hi Phil,

Please find my answer inline to your comment.

> On 15-Jun-2018, at 11:24 PM, Phil Race <[email protected]> wrote:
> 
> I would like to refer back to a comment you made in the previous fix
> http://mail.openjdk.java.net/pipermail/awt-dev/2018-February/013626.html 
> <http://mail.openjdk.java.net/pipermail/awt-dev/2018-February/013626.html>
> 
> > It is not mentioned in the focus spec whether the unfocusable maximized 
> > frames should be resizable or not.
> 
> Yet there seems to be a JCK test that says it should not be resizable ?
> 
> Can you review the spec. again ?
> JCK must have based the test on something .. else the test is not valid.

Yes, I checked FocusSpec.html and it doesn’t specify anything about resizable 
behaviour of non-focusable Frame.

The UnfocusableMaximizedFrameResizablity.java  test passes on Window and Linux 
and fails on Mac OS. 
Fix for issue 7158623 was done accordingly to make sure the behaviour is same 
on all platforms. 

If this behaviour is not correct then Window and Linux code should be changed 
accordingly so that all three platforms behave same.

> 
> If we want that behaviour specified .. we should be specifying it ..
> But I am not sure if it is actually enforceable on all window managers / 
> desktops.
> 
> But I have the same issue with this fix as the previous one. Perhaps not the 
> fix,
> but the explanation. The code being changed can't be understood without seeing
> the method it calls, and the native method it in turn calls.
> 
> Can you provide a detailed explanation as to how this change propagates down
> and does the right thing ?
> 
The call flow:

updateFocusableWindowState() calls setStyleBits with style bits to be set on 
the window.
setStyleBits() calls native method nativeSetNSWindowStyleBits. 
nativeSetNSWindowStyleBits passes mask and 0 as the second parameter in our 
case (for non-focusable windows).
Java_sun_lwawt_macosx_CPlatformWindow_nativeSetNSWindowStyleBits in AWTWindow.m 
generates newBits and applies it on the NSWindow.

My previous fix for issue 7158623 explains bits set on the window.
http://openjdk.5641.n7.nabble.com/lt-AWT-Dev-gt-Subject-lt-AWT-dev-gt-11-Review-request-for-JDK-7158623-macosx-Should-an-unfocusable-m-td326691.html#a329071
 
<http://openjdk.5641.n7.nabble.com/lt-AWT-Dev-gt-Subject-lt-AWT-dev-gt-11-Review-request-for-JDK-7158623-macosx-Should-an-unfocusable-m-td326691.html#a329071>


> BTW stylistically - if this is the right fix - you could do :
> 
> setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | ((isFocusable) ? 
> RESIZABLE : 0), isFocusable);
Changed the code as per the suggestion. Please review the modified code.
http://cr.openjdk.java.net/~mhalder/8204860/webrev.01/ 
<http://cr.openjdk.java.net/~mhalder/8204860/webrev.01/>

Regards,
Manajit

> -phil.
> 
> On 06/14/2018 11:37 PM, Manajit Halder wrote:
>> Hi All,
>> 
>> Kindly review the fix for JDK11.
>> 
>> Bug: 
>> https://bugs.openjdk.java.net/browse/JDK-8204860 
>> <https://bugs.openjdk.java.net/browse/JDK-8204860>
>> 
>> Webrev:
>> http://cr.openjdk.java.net/~mhalder/8204860/webrev.00/ 
>> <http://cr.openjdk.java.net/%7Emhalder/8204860/webrev.00/>
>> 
>> Fix:
>> Frame is focusable:
>>      Retaining the existing frame resizable behaviour (Fixes the current 
>> issue).
>> Frame is non-focusable:
>>      Making the Frame non-resizable (Fix for issue 7158623).
>> 
>> Regards,
>> Manajit
> 

Reply via email to