<AWT Dev> Subject: <AWT dev>[11] Review request for JDK-7158623: [macosx] Should an unfocusable maximized Frame be resizable?
Phil Race
philip.race at oracle.com
Tue Mar 20 21:26:09 UTC 2018
Makes sense once I'd looked at the native side.
Approved.
-phil.
On 03/08/2018 01:57 AM, Manajit Halder wrote:
> Hi Phil,
>
> Please find my answers inline:
>
> Before: if its unfocusable, then setStyleBits will set the mask to 0 :
>
> // this is the counter-point to -[CWindow _nativeSetStyleBit:]
> private void setStyleBits(final int mask, final boolean value) {
> execute(ptr -> nativeSetNSWindowStyleBits(ptr, mask, value ? mask : 0));
> }
>
> Before if its unfocusable, then setStyleBits will not set the bits
> SHOULD_BECOME_KEY and SHOULD_BECOME_MAIN if the window is not focusable.
> While debugging it was observed that the bits set on the window in
> this case was0000111110000010 (the 9th bit is set, whereas the 12th
> and 13th bits are not set)
>
> After: .. well exactly the same thing .. you just added a RESIZABLE
> bit that will be ignored.
>
> Now after my fix RESIZABLE bit along with the other bits won’t be set
> if the window is not focusable. Bits set on the window in this case
> was 0000110110000010 (the 9th bit is not set)
>
> The bit setting is done in the native method
> Java_sun_lwawt_macosx_CPlatformWindow_nativeSetNSWindowStyleBits.
>
> Thanks,
> Manajit
>
>
>> On 26-Feb-2018, at 1:28 PM, Manajit Halder <manajit.halder at oracle.com
>> <mailto:manajit.halder at oracle.com>> wrote:
>>
>> Hi Phil and Kevin,
>>
>> Sorry for specifying wrong JDK version. This review is for JDK 11.
>>
>> Regarding spec:
>> It is not mentioned in the focus spec whether the unfocusable
>> maximized frames should be resizable or not.
>> The fix is given based on the implementation on other platforms
>> (windows and linux/unix) . On both the platforms (windows and
>> unix/linux) the test passes whereas the test fails on Mac.
>> An old Issue https://bugs.openjdk.java.net/browse/JDK-4980161 is
>> related to this fix.
>> Regarding fix:
>> The test case
>> java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java
>> fails on Mac and passes on windows and linux/unix.
>> As per the test case when setFocusableWindowState is set to false
>> frame should not be resizable.
>> updateFocusableWindowState() updates the window focusable state and
>> the fix under review sets RESIZABLE property to true or false based
>> on focusability of the frame.
>> Regards,
>> Manajit
>>
>>
>>> webrev appears to be against the correct repo :
>>> sh://hg.openjdk.java.net/jdk/client
>>>
>>>
>>> First can you point to what in the spec. or whatever points to
>>> the correct desired behaviour being what you describe :
>>> >If the frame is focusable then it is resizable otherwise not.
>>>
>>> And regarding the fix, it isn't obvious how adding RESIZABLE changes
>>> anything here
>>> for the unfocusable case which seems to be the situation that is
>>> under discussion.
>>>
>>> Before: if its unfocusable, then setStyleBits will set the mask to 0 :
>>>
>>> // this is the counter-point to -[CWindow _nativeSetStyleBit:]
>>> private void setStyleBits(final int mask, final boolean value) {
>>> execute(ptr -> nativeSetNSWindowStyleBits(ptr, mask, value ?
>>> mask : 0));
>>> }
>>>
>>> After: .. well exactly the same thing .. you just added a RESIZABLE
>>> bit that will be ignored.
>>>
>>> It may make a difference in the isFocusable case .. but that does
>>> not match what you
>>> say you are doing.
>>>
>>> -phil.
>>>
>>> On 02/16/2018 08:17 AM, Kevin Rushforth wrote:
>>>>
>>>> > Kindly review the fix for JDK10.
>>>>
>>>> You mean JDK 11, right?
>>>>
>>>> -- Kevin
>>>>
>>>>
>>>> Manajit Halder wrote:
>>>>> Hi All,
>>>>>
>>>>> Kindly review the fix for JDK10.
>>>>>
>>>>> Bug:
>>>>> https://bugs.openjdk.java.net/browse/JDK-7158623
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~mhalder/7158623/webrev.00/
>>>>> <http://cr.openjdk.java.net/%7Emhalder/7158623/webrev.00/>
>>>>>
>>>>> Issue:
>>>>> Unfocusable frame was resizable.
>>>>>
>>>>> Fix:
>>>>> After the fix resizability of the frame depends on focusability of
>>>>> the frame. If the frame is focusable then it is resizable
>>>>> otherwise not.
>>>>> The test code was cleaned to remove old test machinery code.
>>>>>
>>>>> Regards,
>>>>> Manajit
>>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180320/7ffc7456/attachment-0001.html>
More information about the awt-dev
mailing list