Merge remote branch 'vsyrjala/misc_fixes'
This commit is contained in:
commit
0dede200c9
|
@ -640,6 +640,17 @@ DRI2CanFlip(DrawablePtr pDraw)
|
||||||
if (!RegionEqual(&pWin->clipList, &pRoot->winSize))
|
if (!RegionEqual(&pWin->clipList, &pRoot->winSize))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
/* Does the window match the pixmap exactly? */
|
||||||
|
if (pDraw->x != 0 ||
|
||||||
|
pDraw->y != 0 ||
|
||||||
|
#ifdef COMPOSITE
|
||||||
|
pDraw->x != pWinPixmap->screen_x ||
|
||||||
|
pDraw->y != pWinPixmap->screen_y ||
|
||||||
|
#endif
|
||||||
|
pDraw->width != pWinPixmap->drawable.width ||
|
||||||
|
pDraw->height != pWinPixmap->drawable.height)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -355,15 +355,32 @@ xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
|
||||||
{
|
{
|
||||||
DisplayModePtr mode;
|
DisplayModePtr mode;
|
||||||
|
|
||||||
|
if (maxPitch <= 0)
|
||||||
|
maxPitch = MAXINT;
|
||||||
|
if (maxX <= 0)
|
||||||
|
maxX = MAXINT;
|
||||||
|
if (maxY <= 0)
|
||||||
|
maxY = MAXINT;
|
||||||
|
|
||||||
for (mode = modeList; mode != NULL; mode = mode->next) {
|
for (mode = modeList; mode != NULL; mode = mode->next) {
|
||||||
if (maxPitch > 0 && mode->HDisplay > maxPitch)
|
if ((xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
|
||||||
mode->status = MODE_BAD_WIDTH;
|
xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
|
||||||
|
xf86ModeHeight(mode, RR_Rotate_0) > maxY) &&
|
||||||
|
(xf86ModeWidth(mode, RR_Rotate_90) > maxPitch ||
|
||||||
|
xf86ModeWidth(mode, RR_Rotate_90) > maxX ||
|
||||||
|
xf86ModeHeight(mode, RR_Rotate_90) > maxY)) {
|
||||||
|
if (xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
|
||||||
|
xf86ModeWidth(mode, RR_Rotate_90) > maxPitch)
|
||||||
|
mode->status = MODE_BAD_WIDTH;
|
||||||
|
|
||||||
if (maxX > 0 && mode->HDisplay > maxX)
|
if (xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
|
||||||
mode->status = MODE_VIRTUAL_X;
|
xf86ModeWidth(mode, RR_Rotate_90) > maxX)
|
||||||
|
mode->status = MODE_VIRTUAL_X;
|
||||||
|
|
||||||
if (maxY > 0 && mode->VDisplay > maxY)
|
if (xf86ModeHeight(mode, RR_Rotate_0) > maxY ||
|
||||||
mode->status = MODE_VIRTUAL_Y;
|
xf86ModeHeight(mode, RR_Rotate_90) > maxY)
|
||||||
|
mode->status = MODE_VIRTUAL_Y;
|
||||||
|
}
|
||||||
|
|
||||||
if (mode->next == modeList)
|
if (mode->next == modeList)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user