composite: Convert compWindowUpdate to use TraverseTree
v2: Use != RedirectDrawNone, since we aren't called for manual windows. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
bbffb85461
commit
648c8871c9
|
@ -639,10 +639,9 @@ compWindowFormat (WindowPtr pWin)
|
|||
}
|
||||
|
||||
static void
|
||||
compWindowUpdateAutomatic (WindowPtr pWin)
|
||||
compWindowUpdateAutomatic (WindowPtr pWin, ScreenPtr pScreen)
|
||||
{
|
||||
CompWindowPtr cw = GetCompWindow (pWin);
|
||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||
WindowPtr pParent = pWin->parent;
|
||||
PixmapPtr pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
||||
PictFormatPtr pSrcFormat = compWindowFormat (pWin);
|
||||
|
@ -665,8 +664,7 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
|||
/*
|
||||
* First move the region from window to screen coordinates
|
||||
*/
|
||||
RegionTranslate(pRegion,
|
||||
pWin->drawable.x, pWin->drawable.y);
|
||||
RegionTranslate(pRegion, pWin->drawable.x, pWin->drawable.y);
|
||||
|
||||
/*
|
||||
* Clip against the "real" border clip
|
||||
|
@ -676,8 +674,7 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
|||
/*
|
||||
* Now translate from screen to dest coordinates
|
||||
*/
|
||||
RegionTranslate(pRegion,
|
||||
-pParent->drawable.x, -pParent->drawable.y);
|
||||
RegionTranslate(pRegion, -pParent->drawable.x, -pParent->drawable.y);
|
||||
|
||||
/*
|
||||
* Clip the picture
|
||||
|
@ -706,23 +703,26 @@ compWindowUpdateAutomatic (WindowPtr pWin)
|
|||
DamageEmpty (cw->damage);
|
||||
}
|
||||
|
||||
void
|
||||
compWindowUpdate (WindowPtr pWin)
|
||||
static int
|
||||
compWindowUpdateVisit(WindowPtr pWin, void *data)
|
||||
{
|
||||
WindowPtr pChild;
|
||||
|
||||
for (pChild = pWin->lastChild; pChild; pChild = pChild->prevSib)
|
||||
compWindowUpdate (pChild);
|
||||
if (pWin->redirectDraw != RedirectDrawNone)
|
||||
{
|
||||
CompWindowPtr cw = GetCompWindow(pWin);
|
||||
|
||||
CompWindowPtr cw = GetCompWindow(pWin);
|
||||
if (cw->damaged)
|
||||
{
|
||||
compWindowUpdateAutomatic (pWin);
|
||||
compWindowUpdateAutomatic(pWin, data);
|
||||
cw->damaged = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return WT_WALKCHILDREN;
|
||||
}
|
||||
|
||||
void
|
||||
compWindowUpdate (WindowPtr pWin)
|
||||
{
|
||||
TraverseTree(pWin, compWindowUpdateVisit, pWin->drawable.pScreen);
|
||||
}
|
||||
|
||||
WindowPtr
|
||||
|
|
Loading…
Reference in New Issue
Block a user