Paint to parent window instead of parent window's pixmap (helps for servers
that don't have a pixmap for the root) Fix offsets for render drawing.
This commit is contained in:
parent
c7bc76f663
commit
9d0213525f
|
@ -648,7 +648,6 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
||||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||||
WindowPtr pParent = pWin->parent;
|
WindowPtr pParent = pWin->parent;
|
||||||
PixmapPtr pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
PixmapPtr pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
||||||
PixmapPtr pDstPixmap = (*pScreen->GetWindowPixmap) (pParent);
|
|
||||||
PictFormatPtr pSrcFormat = compWindowFormat (pWin);
|
PictFormatPtr pSrcFormat = compWindowFormat (pWin);
|
||||||
PictFormatPtr pDstFormat = compWindowFormat (pWin->parent);
|
PictFormatPtr pDstFormat = compWindowFormat (pWin->parent);
|
||||||
int error;
|
int error;
|
||||||
|
@ -658,9 +657,11 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
||||||
0, 0,
|
0, 0,
|
||||||
serverClient,
|
serverClient,
|
||||||
&error);
|
&error);
|
||||||
PicturePtr pDstPicture = CreatePicture (0, &pDstPixmap->drawable,
|
XID subwindowMode = IncludeInferiors;
|
||||||
|
PicturePtr pDstPicture = CreatePicture (0, &pParent->drawable,
|
||||||
pDstFormat,
|
pDstFormat,
|
||||||
0, 0,
|
CPSubwindowMode,
|
||||||
|
&subwindowMode,
|
||||||
serverClient,
|
serverClient,
|
||||||
&error);
|
&error);
|
||||||
|
|
||||||
|
@ -679,8 +680,8 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0, 0,
|
0, 0,
|
||||||
pSrcPixmap->screen_x - pDstPixmap->screen_x,
|
pSrcPixmap->screen_x - pParent->drawable.x,
|
||||||
pSrcPixmap->screen_y - pDstPixmap->screen_y,
|
pSrcPixmap->screen_y - pParent->drawable.y,
|
||||||
pSrcPixmap->drawable.width,
|
pSrcPixmap->drawable.width,
|
||||||
pSrcPixmap->drawable.height);
|
pSrcPixmap->drawable.height);
|
||||||
FreePicture (pSrcPicture, 0);
|
FreePicture (pSrcPicture, 0);
|
||||||
|
|
|
@ -106,8 +106,8 @@ cwGetBackingPicture (PicturePtr pPicture, int *x_off, int *y_off)
|
||||||
WindowPtr pWin = (WindowPtr) pDrawable;
|
WindowPtr pWin = (WindowPtr) pDrawable;
|
||||||
PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
||||||
|
|
||||||
*x_off = pPixmap->drawable.x - pPixmap->screen_x;
|
*x_off = pWin->drawable.x - pPixmap->screen_x;
|
||||||
*y_off = pPixmap->drawable.y - pPixmap->screen_y;
|
*y_off = pWin->drawable.y - pPixmap->screen_y;
|
||||||
|
|
||||||
return pBackingPicture;
|
return pBackingPicture;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue