-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
None
-
Affects Version/s: None
-
Component/s: javafx
-
None
-
windows
On Windows, if a JavaFX application is running in a secondary display, and the first display is updated via System->Display->Scale (i.e. 100% -> 125%), there is no immediate notification of the updated origin, or via System->Display->Drag to rearrange displays (i.e, move 2nd display below the 1st one), there is a notification, but with DPI > 100% it has the wrong location.
Only dragging and moving slightly the application updates the x/y origin to the correct location.
To reproduce the issue, run the attached test with two displays.
- Starting with scales of 125% and 100% in both displays, shows the stage at display 2: see pic "initial position - secondary screen.png", with values x/y 2296x366 (for two 1920x1080 displays)
- Changing primary display to scale 150% doesn't change the location (still shows 2296x366), but pressing File->Open shows the context menu in an unexpected position, with a big offset. And dragging and moving just a bit the stage, shows totally different values, which are the correct ones (see "correct location after dragging.png", values 2043x366), and the context menu shows up again at the expected position.
- Close the application, and start again with 125%-100%, with display 1 to the left, 2 to the right.
- System->Display->Drag to rearrange->Apply, move display 2 below 1, with same x coordinate, and press Apply. Note there is a change in the x position (see "incorrect location after rearranging.png", value 376x1566), and pressing File->Open shows the context menu in an unexpected position, with a big offset. Again, dragging and moving just a bit the stage, shows totally different values, which are the correct ones (see "new correct location after dragging.png", values 2043x366), and the context menu shows up again at the expected position.
Only dragging and moving slightly the application updates the x/y origin to the correct location.
To reproduce the issue, run the attached test with two displays.
- Starting with scales of 125% and 100% in both displays, shows the stage at display 2: see pic "initial position - secondary screen.png", with values x/y 2296x366 (for two 1920x1080 displays)
- Changing primary display to scale 150% doesn't change the location (still shows 2296x366), but pressing File->Open shows the context menu in an unexpected position, with a big offset. And dragging and moving just a bit the stage, shows totally different values, which are the correct ones (see "correct location after dragging.png", values 2043x366), and the context menu shows up again at the expected position.
- Close the application, and start again with 125%-100%, with display 1 to the left, 2 to the right.
- System->Display->Drag to rearrange->Apply, move display 2 below 1, with same x coordinate, and press Apply. Note there is a change in the x position (see "incorrect location after rearranging.png", value 376x1566), and pressing File->Open shows the context menu in an unexpected position, with a big offset. Again, dragging and moving just a bit the stage, shows totally different values, which are the correct ones (see "new correct location after dragging.png", values 2043x366), and the context menu shows up again at the expected position.