From 648c8871c92727d7b6b16859f27f12266a06a16e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 8 Sep 2010 16:08:24 -0400 Subject: [PATCH] composite: Convert compWindowUpdate to use TraverseTree v2: Use != RedirectDrawNone, since we aren't called for manual windows. Signed-off-by: Adam Jackson Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- composite/compwindow.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/composite/compwindow.c b/composite/compwindow.c index 160b7644f..8849dc317 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -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