xserver: Branch 'master'
Adam Jackson
ajax at kemper.freedesktop.org
Mon Feb 8 23:22:38 CET 2016
randr/rrmonitor.c | 6 +++---
randr/rroutput.c | 12 ++++++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
New commits:
commit 7bb64d8c1de9659f11da7917772919b071e9db82
Author: Jan Burgmeier <jan.burgmeier at unicon-software.com>
Date: Thu Feb 4 14:06:43 2016 +0100
Fix XineramaQueryScreens for reverse prime
Make sure we account for slave CRTCs when building the monitor list,
since that's what rrxinerama uses to fake Xinerama geometry.
[ajax: Slightly more informative commit message.]
Bugzilla: https://bugs.freedesktop.org/92313
Reviewed-by: Dave Airlie <airlied at redhat.com>
diff --git a/randr/rrmonitor.c b/randr/rrmonitor.c
index c37dcf8..58041bb 100644
--- a/randr/rrmonitor.c
+++ b/randr/rrmonitor.c
@@ -326,7 +326,7 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
RRMonitorSetFromClient(pScrPriv->monitors[list.client_primary], mon);
mon++;
} else if (list.server_primary >= 0) {
- RRMonitorSetFromServer(pScrPriv->crtcs[list.server_primary], mon);
+ RRMonitorSetFromServer(list.server_crtc[list.server_primary], mon);
mon++;
}
@@ -354,8 +354,8 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
/* And finish with the list of crtc-inspired monitors
*/
- for (c = 0; c < pScrPriv->numCrtcs; c++) {
- RRCrtcPtr crtc = pScrPriv->crtcs[c];
+ for (c = 0; c < list.num_crtcs; c++) {
+ RRCrtcPtr crtc = list.server_crtc[c];
if (c == list.server_primary && list.client_primary < 0)
continue;
diff --git a/randr/rroutput.c b/randr/rroutput.c
index d12b9ba..686ae49 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -543,6 +543,7 @@ ProcRRSetOutputPrimary(ClientPtr client)
WindowPtr pWin;
rrScrPrivPtr pScrPriv;
int ret;
+ ScreenPtr slave;
REQUEST_SIZE_MATCH(xRRSetOutputPrimaryReq);
@@ -565,8 +566,19 @@ ProcRRSetOutputPrimary(ClientPtr client)
pScrPriv = rrGetScrPriv(pWin->drawable.pScreen);
if (pScrPriv)
+ {
RRSetPrimaryOutput(pWin->drawable.pScreen, pScrPriv, output);
+ xorg_list_for_each_entry(slave,
+ &pWin->drawable.pScreen->output_slave_list,
+ output_head) {
+ rrScrPrivPtr pSlavePriv;
+ pSlavePriv = rrGetScrPriv(slave);
+
+ RRSetPrimaryOutput(slave, pSlavePriv, output);
+ }
+ }
+
return Success;
}
More information about the xorg-commit
mailing list