Rotate screen size as needed from RandR 1.1 change requests.

Screen size must reflect rotated mode size when setting rotated mode using
RandR 1.1 SetScreenConfig request.
This commit is contained in:
Keith Packard 2007-04-09 14:29:46 -07:00
parent dc6c4f6989
commit efcec7dbd3

View file

@ -741,6 +741,7 @@ ProcRRSetScreenConfig (ClientPtr client)
RRModePtr mode;
RR10DataPtr pData = NULL;
RRScreenSizePtr pSize;
int width, height;
UpdateCurrentTime ();
@ -882,8 +883,14 @@ ProcRRSetScreenConfig (ClientPtr client)
* If the screen size is changing, adjust all of the other outputs
* to fit the new size, mirroring as much as possible
*/
if (mode->mode.width != pScreen->width ||
mode->mode.height != pScreen->height)
width = mode->mode.width;
height = mode->mode.height;
if (rotation & (RR_Rotate_90|RR_Rotate_270))
{
width = mode->mode.height;
height = mode->mode.width;
}
if (width != pScreen->width || height != pScreen->height)
{
int c;
@ -897,7 +904,7 @@ ProcRRSetScreenConfig (ClientPtr client)
goto sendReply;
}
}
if (!RRScreenSizeSet (pScreen, mode->mode.width, mode->mode.height,
if (!RRScreenSizeSet (pScreen, width, height,
pScreen->mmWidth, pScreen->mmHeight))
{
rep.status = RRSetConfigFailed;