summaryrefslogtreecommitdiff
path: root/randr
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-04-27 16:34:36 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-04-27 16:34:36 +0930
commitf28eea0647f007c2e2415ecc6fceef46201faad4 (patch)
tree5b0bb409d87faa22b091e0190f32a48fd3cda342 /randr
parent339b73e710a0920608a3fbcb20b406f0f6c4e0f6 (diff)
parentae04f2cb0a068cdc1e519627bf745de0c9e4a85a (diff)
Merge branch 'master' into mpx
Conflicts: dix/devices.c dix/events.c
Diffstat (limited to 'randr')
-rw-r--r--randr/rrcrtc.c6
-rw-r--r--randr/rrxinerama.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 1dfc3bbb0..c8c2be264 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -518,6 +518,7 @@ ProcRRGetCrtcInfo (ClientPtr client)
RROutput *outputs;
RROutput *possible;
int i, j, k, n;
+ int width, height;
REQUEST_SIZE_MATCH(xRRGetCrtcInfoReq);
crtc = LookupCrtc(client, stuff->crtc, DixReadAccess);
@@ -540,8 +541,9 @@ ProcRRGetCrtcInfo (ClientPtr client)
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
rep.x = crtc->x;
rep.y = crtc->y;
- rep.width = mode ? mode->mode.width : 0;
- rep.height = mode ? mode->mode.height : 0;
+ RRCrtcGetScanoutSize (crtc, &width, &height);
+ rep.width = width;
+ rep.height = height;
rep.mode = mode ? mode->mode.id : 0;
rep.rotation = crtc->rotation;
rep.rotations = crtc->rotations;
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index 1db27f14c..2a57e4e32 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -428,6 +428,14 @@ RRXineramaExtensionInit(void)
return;
#endif
+ /*
+ * Xinerama isn't capable enough to have multiple protocol screens each
+ * with their own output geometry. So if there's more than one protocol
+ * screen, just don't even try.
+ */
+ if (screenInfo.numScreens > 1)
+ return;
+
(void) AddExtension(PANORAMIX_PROTOCOL_NAME, 0,0,
ProcRRXineramaDispatch,
SProcRRXineramaDispatch,