On Wed, 10 Sep 2025 03:13:53 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> test/jdk/java/awt/Focus/InactiveFocusRace.java line 109:
>> 
>>> 107:             }
>>> 108:         });
>>> 109:         inactiveFrame.setVisible(true);
>> 
>> The previous version used a Semaphore to wait until the frame became active 
>> or the button received focus, but it didn’t check the second inactive frame.
>> I think what we should do is first show the "inactive" frame using the same 
>> Semaphore. Then, once it becomes visible, we should show another "active" 
>> frame.
>> This will ensure that the frame we intend to click below remains 
>> inactive/unfocused.
>
> I didn't get the "previous version"..I just added a delay between the UI 
> creation and test start.
> Earlier also, init is called to do UI creation and then start is immediately 
> called which sets 
> 
> inactiveFrame.setVisible(true);
>         activeFrame.setVisible(true);
> 
> All the semaphore logic is still the same after that

Test does
- renders inactiveFrame
- renders activeFrame
- wait for active frame to be active
- press on second button in inactive frame
- wait for second button should be focus owner
- Check Button2 should be the focus owner

I think the current test is also doing the same even now..

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27156#discussion_r2335482274

Reply via email to