diff --git a/src/wl_init.c b/src/wl_init.c index d3e777d4..21a808aa 100644 --- a/src/wl_init.c +++ b/src/wl_init.c @@ -1038,8 +1038,6 @@ int _glfwPlatformInit(void) char *cursorSizeEnd; long cursorSizeLong; int cursorSize; - int i; - _GLFWmonitor* monitor; _glfw.wl.cursor.handle = _glfw_dlopen("libwayland-cursor.so.0"); if (!_glfw.wl.cursor.handle) @@ -1148,17 +1146,6 @@ int _glfwPlatformInit(void) // Sync so we got all initial output events wl_display_roundtrip(_glfw.wl.display); - for (i = 0; i < _glfw.monitorCount; ++i) - { - monitor = _glfw.monitors[i]; - if (monitor->widthMM <= 0 || monitor->heightMM <= 0) - { - // If Wayland does not provide a physical size, assume the default 96 DPI - monitor->widthMM = (int) (monitor->modes[monitor->wl.currentMode].width * 25.4f / 96.f); - monitor->heightMM = (int) (monitor->modes[monitor->wl.currentMode].height * 25.4f / 96.f); - } - } - _glfwInitTimerPOSIX(); _glfw.wl.timerfd = -1; diff --git a/src/wl_monitor.c b/src/wl_monitor.c index a6356de0..4cbfb51d 100644 --- a/src/wl_monitor.c +++ b/src/wl_monitor.c @@ -81,7 +81,16 @@ static void outputHandleMode(void* data, monitor->modes[monitor->modeCount - 1] = mode; if (flags & WL_OUTPUT_MODE_CURRENT) + { monitor->wl.currentMode = monitor->modeCount - 1; + + if (monitor->widthMM <= 0 || monitor->heightMM <= 0) + { + // If Wayland does not provide a physical size, assume the default 96 DPI + monitor->widthMM = (int) (width * 25.4f / 96.f); + monitor->heightMM = (int) (height * 25.4f / 96.f); + } + } } static void outputHandleDone(void* data, struct wl_output* output)