From a2dab25b06bc4eeba91490aeb2d6aa2c23f4c245 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Thu, 13 Sep 2012 22:04:01 +0200 Subject: [PATCH] Added fallback for X11 monitor size. --- src/x11_monitor.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/x11_monitor.c b/src/x11_monitor.c index 60e498f1..5af8eebb 100644 --- a/src/x11_monitor.c +++ b/src/x11_monitor.c @@ -454,6 +454,7 @@ _GLFWmonitor** _glfwPlatformGetMonitors(int* count) { XRROutputInfo* oi; XRRCrtcInfo* ci; + int physicalWidth, physicalHeight; oi = XRRGetOutputInfo(_glfwLibrary.X11.display, sr, sr->outputs[i]); if (oi->connection != RR_Connected) @@ -462,11 +463,24 @@ _GLFWmonitor** _glfwPlatformGetMonitors(int* count) continue; } + if (oi->mm_width && oi->mm_height) + { + physicalWidth = oi->mm_width; + physicalHeight = oi->mm_height; + } + else + { + physicalWidth = DisplayWidthMM(_glfwLibrary.X11.display, + _glfwLibrary.X11.screen); + physicalHeight = DisplayHeightMM(_glfwLibrary.X11.display, + _glfwLibrary.X11.screen); + } + ci = XRRGetCrtcInfo(_glfwLibrary.X11.display, sr, oi->crtc); monitors[found] = _glfwCreateMonitor(oi->name, i == 0, - oi->mm_width, oi->mm_height, + physicalWidth, physicalHeight, ci->x, ci->y); XRRFreeCrtcInfo(ci);