diff --git a/src/cocoa_monitor.m b/src/cocoa_monitor.m index 955d52d1..5767d24f 100644 --- a/src/cocoa_monitor.m +++ b/src/cocoa_monitor.m @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -148,7 +149,7 @@ static GLFWvidmode vidmodeFromCGDisplayMode(CGDisplayModeRef mode, GLFWvidmode result; result.width = (int) CGDisplayModeGetWidth(mode); result.height = (int) CGDisplayModeGetHeight(mode); - result.refreshRate = (int) CGDisplayModeGetRefreshRate(mode); + result.refreshRate = (int) round(CGDisplayModeGetRefreshRate(mode)); if (result.refreshRate == 0) { diff --git a/src/wl_monitor.c b/src/wl_monitor.c index 588f8b0d..2b50b516 100644 --- a/src/wl_monitor.c +++ b/src/wl_monitor.c @@ -30,6 +30,7 @@ #include #include #include +#include static void outputHandleGeometry(void* data, @@ -70,7 +71,7 @@ static void outputHandleMode(void* data, mode.redBits = 8; mode.greenBits = 8; mode.blueBits = 8; - mode.refreshRate = refresh / 1000; + mode.refreshRate = (int) round(refresh / 1000.0); monitor->modeCount++; monitor->modes = diff --git a/src/x11_monitor.c b/src/x11_monitor.c index df53041d..240e9fb0 100644 --- a/src/x11_monitor.c +++ b/src/x11_monitor.c @@ -30,6 +30,7 @@ #include #include #include +#include // Check whether the display mode should be included in enumeration @@ -44,7 +45,7 @@ static GLFWbool modeIsGood(const XRRModeInfo* mi) static int calculateRefreshRate(const XRRModeInfo* mi) { if (mi->hTotal && mi->vTotal) - return (int) ((double) mi->dotClock / ((double) mi->hTotal * (double) mi->vTotal)); + return (int) round((double) mi->dotClock / ((double) mi->hTotal * (double) mi->vTotal)); else return 0; }