On Wed, May 05, 2010 at 01:25:29PM -0700, Adam Jackson wrote:
> Signed-off-by: Adam Jackson <[email protected]>
> ---
> composite/compalloc.c | 10 +++++++---
> 1 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/composite/compalloc.c b/composite/compalloc.c
> index d21b41d..d5cde58 100644
> --- a/composite/compalloc.c
> +++ b/composite/compalloc.c
> @@ -472,7 +472,7 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr
> pWin)
> }
>
> static PixmapPtr
> -compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
> +compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
> {
> ScreenPtr pScreen = pWin->drawable.pScreen;
> WindowPtr pParent = pWin->parent;
> @@ -493,6 +493,10 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int
> h)
> if (pWin->background.pixmap != None)
> return pPixmap;
>
> + /* if this isn't an allocation in service of MapWindow, we're done */
> + if (!map)
> + return pPixmap;
Just to make sure I understand this right, does this work because the
compReallocPixmap callers always go through the compCopyWindow path and use
CopyArea to initialize the new pixmap? It would be nice if that were
described in the commit log, and maybe in the source code.
> if (pParent->drawable.depth == pWin->drawable.depth)
> {
> GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
> @@ -562,7 +566,7 @@ compAllocPixmap (WindowPtr pWin)
> int y = pWin->drawable.y - bw;
> int w = pWin->drawable.width + (bw << 1);
> int h = pWin->drawable.height + (bw << 1);
> - PixmapPtr pPixmap = compNewPixmap (pWin, x, y, w, h);
> + PixmapPtr pPixmap = compNewPixmap (pWin, x, y, w, h, TRUE);
> CompWindowPtr cw = GetCompWindow (pWin);
>
> if (!pPixmap)
> @@ -636,7 +640,7 @@ compReallocPixmap (WindowPtr pWin, int draw_x, int draw_y,
> pix_h = h + (bw << 1);
> if (pix_w != pOld->drawable.width || pix_h != pOld->drawable.height)
> {
> - pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h);
> + pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h, FALSE);
> if (!pNew)
> return FALSE;
> cw->pOldPixmap = pOld;
> --
> 1.6.5.2
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel