This is a regression due to the removal of fullscreen playmode (see the following PRs):
[Internal link]
[Internal link]
[Internal link]
The issue in the removal of code from WinMonitorCollection.cpp. The above PRs removed the implementation of WinMonitorCollection::UpdateIfNecessary() instead of restoring it to the functionality prior to implementation of the removed feature.
In order for the window positioning and restoration to usable area to work correctly, the implementation must be restored in affected branches.
I've attached the missing code from one of the branches as an example.
Repro (see attached videos)
- Download and open the project on a Windows machine with a multi monitor display
- Move the editor window to the top left of the the rightmost screen
- Go to the menu item "Windows" -> "My Window"
- Move the window to near the right edge of the screen
- Close the new window, then close the main window
- Increase the only the right screen's DPI scale by 100% (so if it was 150%, make it 250%)
- Restart the editor
- Reopen the window via "Windows" -> "My Window"
Result:
"My Window" is not visible. It is off the screen to the right. Also, the main window is not in the same position as it was before even after taking scale into account (see videos.)
Expected:
"My Window" should open near the right edge of the screen since we make sure windows don't open off-screen. Also, the main window should be in the same place it was after taking scaling into account (see videos.)