diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-04-27 16:34:36 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-04-27 16:34:36 +0930 |
commit | f28eea0647f007c2e2415ecc6fceef46201faad4 (patch) | |
tree | 5b0bb409d87faa22b091e0190f32a48fd3cda342 /randr | |
parent | 339b73e710a0920608a3fbcb20b406f0f6c4e0f6 (diff) | |
parent | ae04f2cb0a068cdc1e519627bf745de0c9e4a85a (diff) |
Merge branch 'master' into mpx
Conflicts:
dix/devices.c
dix/events.c
Diffstat (limited to 'randr')
-rw-r--r-- | randr/rrcrtc.c | 6 | ||||
-rw-r--r-- | randr/rrxinerama.c | 8 |
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, |