On Tue, 9 Sep 2025 20:26:15 GMT, Martin Fox <m...@openjdk.org> wrote:

>> When a top-level HWND is iconified its window rect is updated to a 
>> hard-coded location (something like -32000, -32000) and a smaller width and 
>> height. For this reason we should not send notifyMove or notifyResize events 
>> for an iconified stage.  This PR adds a check while handling WM_SHOWWINDOW 
>> to catch the case where a stage is hidden while iconified. This matches 
>> similar existing checks like the one for WM_MOVE.
>
> Martin Fox has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Disabled system test on Linux, DECORATED stage is changing height

The fix looks good. The test fails on Windows with a non-integer HiDPI screen 
scale. I recommend either choosing values that remain integers when multiplied 
by 0.25 (that will cover 1, 1.25, 1.5, 1.75, 2, etc) or increase the tolerance 
used in `assertEquals`.

tests/system/src/test/java/test/javafx/stage/HideIconifiedTest.java line 77:

> 75:     private void assertStageProperties() {
> 76:         assertEquals(STAGE_WIDTH, stage.getWidth(), 0.1, "Stage width 
> changed");
> 77:         assertEquals(STAGE_HEIGHT, stage.getHeight(), 0.1, "Stage height 
> changed");

This fails on a HiDPI system with fractional scale. On my Windows 11 system 
with 125% scaling, I get this failure, even before the Stage is iconified:

org.opentest4j.AssertionFailedError: Stage height changed ==> expected: <350.0> 
but was: <350.3999938964844>

This fails because window system snaps the scaled positions and sizes of the 
window to an integer.

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

PR Review: https://git.openjdk.org/jfx/pull/1889#pullrequestreview-3249088757
PR Review Comment: https://git.openjdk.org/jfx/pull/1889#discussion_r2365675455

Reply via email to