On Mon, 23 Dec 2024 10:51:39 GMT, Jose Pereda <jper...@openjdk.org> wrote:
> This PR adds the missing native implementation for Windows > `GlassWindow::HandleDPIEvent`, to notify the (Java) window when there is a > DPI change event, which can happen when the user changes the resolution of > the screen (via Settings -> System -> Display -> scale), while the JavaFX > application is running. > > When such `WM_DPICHANGED` event happens, `GlassWindow::HandleDPIEvent` > notifies the (Java) window, which changes its platform scale via > `Window::notifyScaleChanged`, and `GlassScreen::HandleDisplayChange();` is > needed too, to update the platform scale of the screen where the window is at > as well. > > There are no tests added to this PR, since these would require manual > intervention to change the display. In any case, the test case added to the > [issue](https://bugs.openjdk.org/browse/JDK-8346281) runs fine now when the > app runs on a given screen and the user changes its resolution. > > There is a follow-up issue after this PR, that might require a more complex > fix, for the case where the user changes the resolution of a different screen > that is placed before the one that has the application (as location > coordinates of the latter depend on the former), because there is no > `WM_DPICHANGED` event in this case. I've added the test case to the JBS issue (sorry about that, I thought I did when I created it). About the test case scenario: - you have a JavaFX application already running in a given monitor - without changing resolution, the label shows the current output scale, and the menu popup shows up in the correct position (if it doesn't, this is a different issue than this one). - Then, after showing the menu at least once, you change the screen resolution (the screen that has the app, that is) With this PR you should see: - the label showing the correct output scale once you change the resolution (this doesn't happen without the PR), - and the menu popup showing up at the correct position (this doesn't happen without the PR). ------------- PR Comment: https://git.openjdk.org/jfx/pull/1668#issuecomment-2560305657