From 5b9f3ea2501a886fb74e5248e82a95e76443f1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Thu, 14 Jan 2016 18:09:44 +0900 Subject: [PATCH] xfree86/modes: Set RandR primary output from CreateScreenResources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes XRRGetOutputPrimary and xrandr not reporting a primary output after startup. This was especially confusing when an output was explicitly marked as primary using Option "Primary" in Section "Monitor". Signed-off-by: Michel Dänzer Reviewed-by: Alex Deucher Signed-off-by: Keith Packard --- hw/xfree86/modes/xf86RandR12.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index b13612371..d34bce2f6 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -1748,6 +1748,7 @@ xf86RandR12CreateScreenResources12(ScreenPtr pScreen) { int c; ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + rrScrPrivPtr rp = rrGetScrPriv(pScreen); xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); if (xf86RandR12Key == NULL) @@ -1760,6 +1761,13 @@ xf86RandR12CreateScreenResources12(ScreenPtr pScreen) config->maxWidth, config->maxHeight); xf86RandR12CreateMonitors(pScreen); + + if (!pScreen->isGPU) { + rp->primaryOutput = config->output[0]->randr_output; + RROutputChanged(rp->primaryOutput, FALSE); + rp->layoutChanged = TRUE; + } + return TRUE; }