Rootless: Remove the PaintWindow optimization which snuck back in.

This commit is contained in:
Jeremy Huddleston 2007-11-22 17:18:48 -08:00
parent a751bc12be
commit 2082e7aa87

View File

@ -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!