internal/devicescale: Fallback to simpler logic when trying to get DPI from monitor and failing (#1600)

Closes #1612
This commit is contained in:
corfe83 2021-04-20 19:43:23 -07:00 committed by Hajime Hoshi
parent 0cf38ce80a
commit 658a2eabdf

View File

@ -240,13 +240,15 @@ func impl(x, y int) float64 {
// do this with Cgo. Use MonitorFromRect instead.
m, err := monitorFromRect(&lprc, monitorDefaultToNearest)
if err != nil {
panic(err)
// monitorFromRect can fail in some environments (#1612)
return getFromLogPixelSx()
}
dpiX := uint32(0)
dpiY := uint32(0) // Passing dpiY is needed even though this is not used, or GetDpiForMonitor returns an error.
if err := getDpiForMonitor(m, mdtEffectiveDpi, &dpiX, &dpiY); err != nil {
panic(err)
// getDpiForMonitor can fail in some environments (#1612)
return getFromLogPixelSx()
}
runtime.KeepAlive(dpiY)