Merge branch 'server-1.4-branch' into xorg-server-1.4-apple
This commit is contained in:
commit
509827a598
|
@ -598,6 +598,9 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
|
|||
else
|
||||
sharePrivate = NULL;
|
||||
|
||||
if (baseShareContext && baseShareContext->isDirect)
|
||||
return NULL;
|
||||
|
||||
context = xalloc(sizeof *context);
|
||||
if (context == NULL)
|
||||
return NULL;
|
||||
|
@ -617,6 +620,11 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
|
|||
0, /* render type */
|
||||
sharePrivate,
|
||||
&context->driContext);
|
||||
|
||||
if (!context->driContext.private) {
|
||||
xfree(context);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
context->driContext.mode = modes;
|
||||
|
||||
|
|
|
@ -1014,7 +1014,7 @@ CALLBACK(SecurityCheckResourceIDAccess)
|
|||
}
|
||||
else /* server-owned resource - probably a default colormap or root window */
|
||||
{
|
||||
if (RT_WINDOW == rtype || RC_DRAWABLE == rtype)
|
||||
if (RC_DRAWABLE & rtype)
|
||||
{
|
||||
switch (reqtype)
|
||||
{ /* the following operations are allowed on root windows */
|
||||
|
|
12
Xext/shm.c
12
Xext/shm.c
|
@ -753,10 +753,10 @@ CreatePmap:
|
|||
if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
|
||||
if (size < width * height)
|
||||
return BadAlloc;
|
||||
/* thankfully, offset is unsigned */
|
||||
if (stuff->offset + size < size)
|
||||
return BadAlloc;
|
||||
}
|
||||
/* thankfully, offset is unsigned */
|
||||
if (stuff->offset + size < size)
|
||||
return BadAlloc;
|
||||
|
||||
VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
|
||||
|
||||
|
@ -1098,10 +1098,10 @@ CreatePmap:
|
|||
if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
|
||||
if (size < width * height)
|
||||
return BadAlloc;
|
||||
/* thankfully, offset is unsigned */
|
||||
if (stuff->offset + size < size)
|
||||
return BadAlloc;
|
||||
}
|
||||
/* thankfully, offset is unsigned */
|
||||
if (stuff->offset + size < size)
|
||||
return BadAlloc;
|
||||
|
||||
VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
|
||||
pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)(
|
||||
|
|
|
@ -165,6 +165,29 @@ compCheckRedirect (WindowPtr pWin)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
updateOverlayWindow(ScreenPtr pScreen)
|
||||
{
|
||||
CompScreenPtr cs;
|
||||
WindowPtr pWin; /* overlay window */
|
||||
XID vlist[2];
|
||||
|
||||
cs = GetCompScreen(pScreen);
|
||||
if ((pWin = cs->pOverlayWin) != NULL) {
|
||||
if ((pWin->drawable.width == pScreen->width) &&
|
||||
(pWin->drawable.height == pScreen->height))
|
||||
return Success;
|
||||
|
||||
/* Let's resize the overlay window. */
|
||||
vlist[0] = pScreen->width;
|
||||
vlist[1] = pScreen->height;
|
||||
return ConfigureWindow(pWin, CWWidth | CWHeight, vlist, wClient(pWin));
|
||||
}
|
||||
|
||||
/* Let's be on the safe side and not assume an overlay window is always allocated. */
|
||||
return Success;
|
||||
}
|
||||
|
||||
Bool
|
||||
compPositionWindow (WindowPtr pWin, int x, int y)
|
||||
{
|
||||
|
@ -203,6 +226,8 @@ compPositionWindow (WindowPtr pWin, int x, int y)
|
|||
cs->PositionWindow = pScreen->PositionWindow;
|
||||
pScreen->PositionWindow = compPositionWindow;
|
||||
compCheckTree (pWin->drawable.pScreen);
|
||||
if (updateOverlayWindow(pScreen) != Success)
|
||||
ret = FALSE;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -3023,7 +3023,8 @@ UnrealizeTree(
|
|||
}
|
||||
#endif
|
||||
(* Unrealize)(pChild);
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (MapUnmapEventsEnabled(pWin))
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (pChild->viewable)
|
||||
{
|
||||
#ifdef DO_SAVE_UNDERS
|
||||
|
|
|
@ -579,9 +579,9 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation)
|
|||
}
|
||||
else
|
||||
{
|
||||
PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, crtc->x, crtc->y);
|
||||
PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, F(crtc->x), F(crtc->y));
|
||||
PictureTransformIsInverse ("offset", &crtc_to_fb, &fb_to_crtc);
|
||||
|
||||
|
||||
/*
|
||||
* these are the size of the shadow pixmap, which
|
||||
* matches the mode, not the pre-rotated copy in the
|
||||
|
|
Loading…
Reference in New Issue
Block a user