Commit 648c8871 authored by Adam Jackson's avatar Adam Jackson 🎧 Committed by Keith Packard
Browse files

composite: Convert compWindowUpdate to use TraverseTree



v2: Use != RedirectDrawNone, since we aren't called for manual windows.
Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
parent bbffb854
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment