]> git.pld-linux.org Git - packages/xorg-xserver-server.git/blob - xorg-xserver-server-backclear.patch
- xinerama qt crash fix
[packages/xorg-xserver-server.git] / xorg-xserver-server-backclear.patch
1 --- xorg-server-1.6.3/composite/compalloc.c     2009-07-07 13:48:57.000000000 -0400
2 +++ xorg-server-1.6.3-backclear/composite/compalloc.c   2009-09-09 11:55:03.000000000 -0400
3 @@ -483,65 +483,33 @@
4      
5      pPixmap->screen_x = x;
6      pPixmap->screen_y = y;
7 -    
8 -    if (pParent->drawable.depth == pWin->drawable.depth)
9 -    {
10 -       GCPtr   pGC = GetScratchGC (pWin->drawable.depth, pScreen);
11 -       
12 -       /*
13 -        * Copy bits from the parent into the new pixmap so that it will
14 -        * have "reasonable" contents in case for background None areas.
15 -        */
16 -       if (pGC)
17 -       {
18 -           XID val = IncludeInferiors;
19 -           
20 -           ValidateGC(&pPixmap->drawable, pGC);
21 -           dixChangeGC (serverClient, pGC, GCSubwindowMode, &val, NULL);
22 -           (*pGC->ops->CopyArea) (&pParent->drawable,
23 -                                  &pPixmap->drawable,
24 -                                  pGC,
25 -                                  x - pParent->drawable.x,
26 -                                  y - pParent->drawable.y,
27 -                                  w, h, 0, 0);
28 -           FreeScratchGC (pGC);
29 -       }
30 -    }
31 -    else
32 +
33      {
34 -       PictFormatPtr   pSrcFormat = compWindowFormat (pParent);
35 -       PictFormatPtr   pDstFormat = compWindowFormat (pWin);
36 +        /*
37 +         * Initialize new backing pixmap as fully transparent.
38 +         */
39 +        PictFormatPtr   pDstFormat = compWindowFormat (pWin);
40         XID             inferiors = IncludeInferiors;
41         int             error;
42  
43 -       PicturePtr      pSrcPicture = CreatePicture (None,
44 -                                                    &pParent->drawable,
45 -                                                    pSrcFormat,
46 -                                                    CPSubwindowMode,
47 -                                                    &inferiors,
48 -                                                    serverClient, &error);
49 -                                                   
50         PicturePtr      pDstPicture = CreatePicture (None,
51                                                      &pPixmap->drawable,
52                                                      pDstFormat,
53                                                      0, 0,
54                                                      serverClient, &error);
55  
56 -       if (pSrcPicture && pDstPicture)
57 +       if (pDstPicture)
58         {
59 -           CompositePicture (PictOpSrc,
60 -                             pSrcPicture,
61 +           CompositePicture (PictOpClear,
62 +                             pDstPicture,
63                               NULL,
64                               pDstPicture,
65 -                             x - pParent->drawable.x,
66 -                             y - pParent->drawable.y,
67 -                             0, 0, 0, 0, w, h);
68 +                             0, 0, 0, 0, 0, 0, w, h);
69         }
70 -       if (pSrcPicture)
71 -           FreePicture (pSrcPicture, 0);
72         if (pDstPicture)
73             FreePicture (pDstPicture, 0);
74      }
75 +
76      return pPixmap;
77  }
78  
This page took 0.036607 seconds and 3 git commands to generate.