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);
|
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
|
* RootlessChangeBorderWidth
|
||||||
* FIXME: untested!
|
* FIXME: untested!
|
||||||
|
|
Loading…
Reference in New Issue