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

Semyon Sadetsky semyon.sadetsky at oracle.com
Mon Oct 2 17:32:40 UTC 2017


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/20171002/2352910f/attachment.html>


More information about the awt-dev mailing list