<AWT Dev> Review request for 8160570: [mac] modal dialog can skip the activation/focus events

Anton Tarasov anton.tarasov at jetbrains.com
Mon Sep 5 08:08:02 UTC 2016


Hi Sergey,

On 9/1/2016 5:22 PM, Anton Tarasov wrote:
> On 01 Sep 2016, at 14:31, Sergey Bylokhov <Sergey.Bylokhov at oracle.com> wrote:
>> On 01.09.16 12:51, Anton Tarasov wrote:
>>> On 31 Aug 2016, at 21:04, Sergey Bylokhov <Sergey.Bylokhov at oracle.com> wrote:
>>>> On 30.08.16 18:18, Anton Tarasov wrote:
>>>>>>> As I wrote in JIRA, the problem is caused by the fact that a native
>>>>>>> window (for a modal dialog) is shown before the peer starts to show.
>>>>>>> (This seems strange, and you can investigate the reason, I’m not aware)
>>>>>> Maybe because NSWindow.orderFrontRegardless() is called? Why it is
>>>>>> called on that moment and why the "Regardless" version is used?
>>>>> Well, I suggest a one-line fix, harmless from my point of view. And I'm
>>>>> pointing to a problematic spot alongside. I'd love to know why modal
>>>>> dialogs are shown that way, but I'm afraid there was a hidden reason.
>>>> I wonder how do you use this dialogs, because it is not possible to dispose or make them invisible. For example all tests should dispose all windows which were created in the test, and it seems impossible in the provided code, right(tested on latest jdk9)?
>>> What do you mean? Ok, I simply tried to dispose it, it disappeared (well, I didn’t debug to check if it was disposed properly, but visually I see no problem). So, please clarify.
>> I just check on the latest jdk9 and jdk8u101, I add these lines to the test:
>>   f.setVisible(true);
>>   d.setVisible(true);
>> + f.dispose();
>> + d.dispose();
>>
>> but both frames are still visible. This is why I wonder, how did you close it in the app.
> You probably missed the fact the dialog is modal.
>
> Anton.

so do you have any more concerns about the dialogs?

Regards,
Anton.

>
>>> Why do I have to dispose all windows in a reg test?
>>>
>>> Of course I tested it, on jdk9 of a version matching the date of submitting the fix.
>>>
>>> Regards,
>>> Anton.
>>>
>>>>>> --Semyon
>>>>>>> The problem is thus specific to OSX.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Anton.
>>>>>>>
>>>>>>>> On 29 Aug 2016, at 19:30, Semyon Sadetsky
>>>>>>>> <semyon.sadetsky at oracle.com> wrote:
>>>>>>>>
>>>>>>>> Hi Anton,
>>>>>>>>
>>>>>>>> is it really OS X only problem? It seems on other platforms the peer
>>>>>>>> focusability is updated in the same way.
>>>>>>>>
>>>>>>>> --Semyon
>>>>>>>>
>>>>>>>>
>>>>>>>> On 6/29/2016 9:04 PM, Anton Tarasov wrote:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> Please review the fix:
>>>>>>>>>
>>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8160570
>>>>>>>>> webrev: http://cr.openjdk.java.net/~ant/JDK-8160570/webrev.0
>>>>>>>>> <http://cr.openjdk.java.net/%7Eant/JDK-8160570/webrev.0>
>>>>>>>>>
>>>>>>>>> The problem is that a modal dialog can skip the activation/focus
>>>>>>>>> events on OSX.
>>>>>>>>> The fix is to cache the focusability state of the Window peer
>>>>>>>>> earlier, in its ctor.
>>>>>>>>> Please find more details in JIRA.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Anton.
>>>>
>>>> --
>>>> Best regards, Sergey.
>>
>> -- 
>> Best regards, Sergey.



More information about the awt-dev mailing list