diff src/redraw_man.c @ 531:1ad6c6192a80 Android_Skia

Skip root coord when propagate dirty area to parent cached
author Thinker K.F. Li <thinker@branda.to>
date Fri, 25 Dec 2009 11:13:21 +0800
parents cd41d9033567
children 5711059b9642
line wrap: on
line diff
--- a/src/redraw_man.c	Fri Dec 25 00:27:19 2009 +0800
+++ b/src/redraw_man.c	Fri Dec 25 11:13:21 2009 +0800
@@ -1845,9 +1845,10 @@
     dirty_coords = rdman->dirty_coords.ds;
     for(i = 0; i < n_dirty_coords; i++) {
 	coord = dirty_coords[i];
-	if(coord_get_flags(coord, COF_OWN_CANVAS)) {
-	    add_dirty_area(rdman, coord, coord->cur_area);
-	    add_dirty_area(rdman, coord, coord->last_area);
+	if(coord_get_flags(coord, COF_OWN_CANVAS) &&
+	   !coord_is_root(coord)) {
+	    add_dirty_area(rdman, coord->parent, coord->cur_area);
+	    add_dirty_area(rdman, coord->parent, coord->last_area);
 	}
     }
 
@@ -1915,6 +1916,9 @@
     if(r != OK)
 	return ERR;
 
+    /* Zeroing must be performed after clearing to get latest position
+     * of shapes for computing new bounding box
+     */
     r = add_rdman_zeroing_coords(rdman);
     if(r != OK)
 	return ERR;