diff --git a/internal/devicescale/impl_windows.go b/internal/devicescale/impl_windows.go index 1b59f4a3b..6fda040d8 100644 --- a/internal/devicescale/impl_windows.go +++ b/internal/devicescale/impl_windows.go @@ -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)