[jfx17] RFR: 8240640: [macos] Wrong focus behaviour with multiple Alerts

Kevin Rushforth kcr at openjdk.java.net
Fri Jul 23 00:19:13 UTC 2021


On Mon, 19 Jul 2021 19:52:05 GMT, Pankaj Bansal <pbansal at openjdk.org> wrote:

> The bug is a regression as a result of fix done for JDK-8227366 and is reproducible on Linux and Mac. This fix is being reverted in this change and a new bug (JDK-8271054) has been created to redo the JDK-8227366
> 
> An automated testcase is being added to make sure similar regression is not introduced when working on the redo bug. The automated testcase fails without the current change and passes after the change.
> 
> The testcase works fine on Mac and Linux, but I see some issues in windows. The stage is minimised after calling stage.show without calling stage.setAlwaysOnTop(true). I see that there are other tests like DualWindowsTest.java which are failing for same reason. Also, if I remove the stage.setAlwaysOnTop(true) from tests like FocusParentWindowOnChildCloseTest.java,  the stage remains minimised there as well. This seems wrong as calling stage.setAlwaysOnTop(true) should not be required to bring stage window in focus on running the test. This may be an issue on my Window machine or something similar. I hope reviewers can shed some light on this.

The fix (reverting the earlier fix for JDK-8227366) looks fine to me. The test runs fine on Mac (and mostly fine on Linux, but I need to test a couple more things).

I also see the failure on Windows frequently depending on whether the Window initially gets focus. One thing you might try is to call `stage.toFront()` and `stage.requestFocus()` before showing the Alerts, although I'm not sure that will help. For other tests like this we do set the primary stage to be always on top, so that's probably the easiest. Failing that you could mark the test as unstable on Windows.

Btw, on my slow Linux VM, it occasionally fails because the window takes a bit too long to come up. I'll do some more testing once you fix the Windows issue.

I left a couple formatting comments on the test inline.

tests/system/src/test/java/test/robot/javafx/stage/WrongStageFocusWithApplicationModalityTest.java line 104:

> 102:         }
> 103: 
> 104:         private void showAlert(String title)

Minor: curly brace on same line as method.

tests/system/src/test/java/test/robot/javafx/stage/WrongStageFocusWithApplicationModalityTest.java line 114:

> 112:         }
> 113:     }
> 114: }

Minor: add missing newline.

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

PR: https://git.openjdk.java.net/jfx/pull/581


More information about the openjfx-dev mailing list