summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@nokia.com>2011-01-05 20:41:09 +0200
committerKeith Packard <keithp@keithp.com>2011-01-05 11:57:31 -0800
commitf3480286aeb3009623d8d4b0202eadda0049552d (patch)
treed9e2b9ebbddf60e3640ed322306b1fa82b06f5e3 /dix
parentb89e6dbdfbb50e3b5bc7fcb7eccc397c467c92f8 (diff)
composite: Support updating an arbitrary subtree
Rename compUpdateWindow to compPaintWindowToParent and split the child walk to compPaintChildrenToWindow. Calling compPaintChildrenToWindow allows an arbitrary subtree to be updated, instead of having to update all the windows. This will be used to make sure all the descendants are copied to the parent when the parent window contents need to be accessed in IncludeInferios sub-window mode. WindowRec has a new member 'damagedDescendants' that is used to keep track of which subtrees need updating. When a window is damaged, 'damagedDescendants' will be set for all the ancestors, and when a subtree is updated, the tree walk can be stopped early if no damaged descendants are present. CompScreenRec no longer needs the 'damaged' member since the root window's 'damagedDescendants' provides the same information. Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'dix')
-rw-r--r--dix/window.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/dix/window.c b/dix/window.c
index d140ddade..9be70649a 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -298,6 +298,10 @@ SetWindowToDefaults(WindowPtr pWin)
#ifdef ROOTLESS
pWin->rootlessUnhittable = FALSE;
#endif
+
+#ifdef COMPOSITE
+ pWin->damagedDescendants = FALSE;
+#endif
}
static void