<AWT Dev> [10] Review request for 8155197: Focus transition issue

Dmitry Markov dmitry.markov at oracle.com
Tue Oct 3 15:23:59 UTC 2017

Hi Semyon,

I have updated the fix based on your suggestion. The new version is located at http://cr.openjdk.java.net/~dmarkov/8155197/webrev.02/ <http://cr.openjdk.java.net/~dmarkov/8155197/webrev.02/>
Also I slightly modified the test to simplify it.

> On 2 Oct 2017, at 18:32, Semyon Sadetsky <semyon.sadetsky at oracle.com> wrote:
> Hi Dmitry,
>>> Actually the parent frame doesn't own the input focus when the issue happens. The focus is on the dialog already and when FOCUS_GAINED event comes for the dialog the KFM discovers that the dialog should not have the focus and rejects it in line 588 of the DefaultKeyboardFocusManager:
>>>                             restoreFocus(fe, newFocusedWindow);
>>> This happens when the dialog became non-focusable (non-visible) after the focus request is sent, but before the corresponding FOCUS_GAINED event is handled on the EDT. In this case the focus is directly restored to the previously focused window which doesn't have the focus at this moment and input focus cannot be requested to one of its components synchronously.
>>> Please confirm whether you agree on the root cause of the bug.
>> You are right. I agree with your evaluation.
> Thanks.
> Before setting the restoreFocusTo to toFocus in line 190 I would recheck for toFocus.isShowing() && toFocus.canBeFocusOwner() once again because the component can be made non-focusable concurrently.
> --Semyon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20171003/d2634c98/attachment.html>

More information about the awt-dev mailing list