[CSS Grid Layout] Support sparse in auto-placement algorithm
[WebKit-https.git] / Source / WebCore / ChangeLog
index cee8ac6..3931d0a 100644 (file)
@@ -1,3 +1,35 @@
+2014-07-14  Manuel Rego Casasnovas  <rego@igalia.com>
+
+        [CSS Grid Layout] Support sparse in auto-placement algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=134544
+
+        Reviewed by Sergio Villar Senin.
+
+        This patch implements sparse mode for auto-placement algorithm, which is
+        the default mode in the new grid-auto-flow syntax. It keeps track of the
+        auto-placement cursor in
+        RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
+        when auto-positioned items are placed.
+        If we're in dense mode it resets the cursor after each item (which keeps
+        the old behavior that was using dense mode by default).
+
+        GridIterator has been adapted to look for empty areas from a given
+        position in both directions.
+
+        Test: fast/css-grid-layout/grid-auto-flow-sparse.html
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
+        add an optional argument for the varying index. This allows to look for
+        empty areas in both axis.
+        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
+        auto-placement cursor and rested after each item if we're in dense mode.
+        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
+        cursor to look for empty areas from the last auto-positioned item
+        placed.
+        * rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header
+        to receive the auto-placement cursor.
+
 2014-07-14  Brent Fulgham  <bfulgham@apple.com>
 
         [iOS] Some videos play as inline audio-only content