internal/devicescale: bug fix: glfw.Monitor.GetContentScale might return 0

Retrying to call GetContentScale solved this.

Closes #2051
This commit is contained in:
Hajime Hoshi 2022-04-03 19:32:01 +09:00
parent 6f87e49bb8
commit ca6f4fce15

View File

@ -35,6 +35,13 @@ func monitorAt(x, y int) *glfw.Monitor {
} }
func impl(x, y int) float64 { func impl(x, y int) float64 {
// Keep calling GetContentScale until the returned scale is 0 (#2051).
// Retry this at most 5 times to avoid an inifinite loop.
for i := 0; i < 5; i++ {
sx, _ := monitorAt(x, y).GetContentScale() sx, _ := monitorAt(x, y).GetContentScale()
if sx != 0 {
return float64(sx) return float64(sx)
} }
}
return 1
}