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.

modules/javafx.graphics/src/main/native-glass/win/GlassWindow.cpp line 213:

> 211: 
> 212: #ifndef USER_DEFAULT_SCREEN_DPI
> 213: #define USER_DEFAULT_SCREEN_DPI 96

shouldn't this value come from some windows header?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1668#discussion_r1895898710

Reply via email to