- 3 Monitors
- 1200x1600, dpr 1.0
- 3840x2160, dpr 1.5
- 2560x1440, dpr 1.0
We have an app where there is a window on one of the non-scaled monitors where when we drag the tab and drop it in empty space on that same monitor, the widget pixels for the widgets in the window are scaled down by 50% making all of the GUI elements very large. If you repeat that action, it will correctly scale those pixels.
I've observed that when QWidget::metric is fired off the topLevelWindow in the case where pixels are incorrectly scaled will correspond to the primary window (and screen where the DPR is incorrect). The next time we use the repro and QWidget::metric is fired, we will get a different topLevelWindow (and subsequently a different screen) where the DPR is correct.
If I add a breakpoint in QLayout::addChildWidget where pw is assigned, I'll see that the pixels are always correctly painted using the appropriate DPR, however the size if the window itself is reduced by 50% (the scale of the DPR for the main screen) with each application of the repro.