diff --git a/src/x11_monitor.c b/src/x11_monitor.c index e9e0a88f..73e9d80c 100644 --- a/src/x11_monitor.c +++ b/src/x11_monitor.c @@ -331,11 +331,15 @@ _GLFWmonitor** _glfwPlatformGetMonitors(int* count) { #if defined (_GLFW_HAS_XRANDR) int i; + RROutput primary; XRRScreenResources* sr; sr = XRRGetScreenResources(_glfwLibrary.X11.display, _glfwLibrary.X11.root); + primary = XRRGetOutputPrimary(_glfwLibrary.X11.display, + _glfwLibrary.X11.root); + monitors = (_GLFWmonitor**) calloc(sr->noutput, sizeof(_GLFWmonitor*)); if (!monitors) { @@ -374,7 +378,7 @@ _GLFWmonitor** _glfwPlatformGetMonitors(int* count) ci = XRRGetCrtcInfo(_glfwLibrary.X11.display, sr, oi->crtc); monitors[found] = _glfwCreateMonitor(oi->name, - i == 0, + sr->outputs[i] == primary, physicalWidth, physicalHeight, ci->x, ci->y);