Rootless: Remove the PaintWindow optimization which snuck back in.
This commit is contained in:
		
							parent
							
								
									a751bc12be
								
							
						
					
					
						commit
						2082e7aa87
					
				|  | @ -1485,95 +1485,6 @@ RootlessFlushWindowColormap (WindowPtr pWin) | |||
|   configure_window (winRec->wid, XP_COLORMAP, &wc); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * SetPixmapOfAncestors | ||||
|  *  Set the Pixmaps on all ParentRelative windows up the ancestor chain. | ||||
|  */ | ||||
| static void | ||||
| SetPixmapOfAncestors(WindowPtr pWin) | ||||
| { | ||||
|     ScreenPtr pScreen = pWin->drawable.pScreen; | ||||
|     WindowPtr topWin = TopLevelParent(pWin); | ||||
|     RootlessWindowRec *topWinRec = WINREC(topWin); | ||||
| 
 | ||||
|     while (pWin->backgroundState == ParentRelative) { | ||||
|         if (pWin == topWin) { | ||||
|             // disallow ParentRelative background state on top level
 | ||||
|             XID pixel = 0; | ||||
|             ChangeWindowAttributes(pWin, CWBackPixel, &pixel, serverClient); | ||||
|             RL_DEBUG_MSG("Cleared ParentRelative on 0x%x.\n", pWin); | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         pWin = pWin->parent; | ||||
|         pScreen->SetWindowPixmap(pWin, topWinRec->pixmap); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * RootlessPaintWindowBackground | ||||
|  */ | ||||
| void | ||||
| RootlessPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion, int what) | ||||
| { | ||||
|     ScreenPtr pScreen = pWin->drawable.pScreen; | ||||
|   | ||||
|     if (IsRoot(pWin)) | ||||
|         return; | ||||
| 
 | ||||
|     RL_DEBUG_MSG("paintwindowbackground start (win 0x%x, framed %i) ", | ||||
|                  pWin, IsFramedWindow(pWin)); | ||||
| 
 | ||||
|     if (IsFramedWindow(pWin)) { | ||||
|         RootlessStartDrawing(pWin); | ||||
|         RootlessDamageRegion(pWin, pRegion); | ||||
| 
 | ||||
|         // For ParentRelative windows, we have to make sure the window
 | ||||
|         // pixmap is set correctly all the way up the ancestor chain.
 | ||||
|         if (pWin->backgroundState == ParentRelative) { | ||||
|             SetPixmapOfAncestors(pWin); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     SCREEN_UNWRAP(pScreen, PaintWindowBackground); | ||||
|     pScreen->PaintWindowBackground(pWin, pRegion, what); | ||||
|     SCREEN_WRAP(pScreen, PaintWindowBackground); | ||||
| 
 | ||||
|     RL_DEBUG_MSG("paintwindowbackground end\n"); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * RootlessPaintWindowBorder | ||||
|  */ | ||||
| void | ||||
| RootlessPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion, int what) | ||||
| { | ||||
|     RL_DEBUG_MSG("paintwindowborder start (win 0x%x) ", pWin); | ||||
| 
 | ||||
|     if (IsFramedWindow(pWin)) { | ||||
|         RootlessStartDrawing(pWin); | ||||
|         RootlessDamageRegion(pWin, pRegion); | ||||
| 
 | ||||
|         // For ParentRelative windows with tiled borders, we have to make
 | ||||
|         // sure the window pixmap is set correctly all the way up the
 | ||||
|         // ancestor chain.
 | ||||
|         if (!pWin->borderIsPixel && | ||||
|             pWin->backgroundState == ParentRelative) | ||||
|         { | ||||
|             SetPixmapOfAncestors(pWin); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     SCREEN_UNWRAP(pWin->drawable.pScreen, PaintWindowBorder); | ||||
|     pWin->drawable.pScreen->PaintWindowBorder(pWin, pRegion, what); | ||||
|     SCREEN_WRAP(pWin->drawable.pScreen, PaintWindowBorder); | ||||
| 
 | ||||
|     RL_DEBUG_MSG("paintwindowborder end\n"); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * RootlessChangeBorderWidth | ||||
|  *  FIXME: untested! | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue