fix paint order of cells with rowspans...

David Hyatt hyatt at apple.com
Thu Apr 22 04:33:35 CEST 2004


Index: ChangeLog
===================================================================
RCS file: /local/home/cvs/Labyrinth/WebCore/ChangeLog,v
retrieving revision 1.2682
diff -u -p -r1.2682 ChangeLog
--- ChangeLog	2004/04/21 21:48:17	1.2682
+++ ChangeLog	2004/04/22 02:22:07
@@ -1,5 +1,14 @@
 2004-04-21  David Hyatt  <hyatt at apple.com>
 
+	Fix for 3020449, ensure that the paint order of cells with rowspans matches other browsers.
+	
+        Reviewed by NOBODY (OOPS!).
+
+        * khtml/rendering/render_table.cpp:
+        (RenderTableSection::paint):
+
+2004-04-21  David Hyatt  <hyatt at apple.com>
+
 	Remove the (incorrect) restriction on table flexing that required the cell to have a fixed width.  In
 	reality, the style on the cell is completely irrelevant.
 	
Index: khtml/rendering/render_table.cpp
===================================================================
RCS file: /local/home/cvs/Labyrinth/WebCore/khtml/rendering/render_table.cpp,v
retrieving revision 1.101
diff -u -p -r1.101 khtml/rendering/render_table.cpp
--- khtml/rendering/render_table.cpp	2004/04/21 21:48:17	1.101
+++ khtml/rendering/render_table.cpp	2004/04/22 02:22:07
@@ -1418,7 +1418,11 @@ void RenderTableSection::paint(PaintInfo
 		RenderTableCell *cell = cellAt(r, c);
 		if (!cell || cell == (RenderTableCell *)-1 )
 		    continue;
-		if ( (r < endrow - 1) && (cellAt(r+1, c) == cell) )
+                
+                // Cells must always paint in the order in which they appear taking into account
+                // their upper left originating row/column.  For cells with rowspans, avoid repainting
+                // if we've already seen the cell.
+		if (r > startrow && (cellAt(r-1, c) == cell))
 		    continue;
 
 #ifdef TABLE_PRINT
-------------- next part --------------


Amazingly this actually matters... :)

dave


More information about the Khtml-devel mailing list