]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed broken Gridlayout cell position calculation in IE10 #11644 (backported from...
authorJohn Ahlroos <john@vaadin.com>
Wed, 13 Mar 2013 09:23:32 +0000 (11:23 +0200)
committerVaadin Code Review <review@vaadin.com>
Tue, 23 Apr 2013 11:36:50 +0000 (11:36 +0000)
Change-Id: I9003feeb3ee22f29975a3e8557cd8775e838c57f
Merge: no

client/src/com/vaadin/client/ui/VGridLayout.java

index d024c1caaee8cef2de6c0b3c8c3960ec2543e404..46051655b8555d05db47edb9afc1b0365b2b9798 100644 (file)
@@ -219,24 +219,28 @@ public class VGridLayout extends ComplexPanel {
         Element element = getElement();
         int paddingTop = layoutManager.getPaddingTop(element);
         int paddingBottom = layoutManager.getPaddingBottom(element);
+
         int y = paddingTop;
+        for (int column = 0; column < cells.length; column++) {
+            y = paddingTop + 1 - 1; // Ensure IE10 does not optimize this out by
+                                    // adding something to evaluate on the RHS
+                                    // #11303
 
-        for (int i = 0; i < cells.length; i++) {
-            y = paddingTop;
-            for (int j = 0; j < cells[i].length; j++) {
-                Cell cell = cells[i][j];
+            for (int row = 0; row < cells[column].length; row++) {
+                Cell cell = cells[column][row];
                 if (cell != null) {
                     int reservedMargin;
-                    if (cell.rowspan + j >= cells[i].length) {
+                    if (cell.rowspan + row >= cells[column].length) {
                         // Make room for layout padding for cells reaching the
                         // bottom of the layout
                         reservedMargin = paddingBottom;
                     } else {
                         reservedMargin = 0;
                     }
+
                     cell.layoutVertically(y, reservedMargin);
                 }
-                y += rowHeights[j] + verticalSpacing;
+                y += rowHeights[row] + verticalSpacing;
             }
         }
 
@@ -245,6 +249,7 @@ public class VGridLayout extends ComplexPanel {
                     + layoutManager.getPaddingBottom(element)
                     + layoutManager.getBorderHeight(element);
             element.getStyle().setHeight(outerHeight, Unit.PX);
+
             getConnector().getLayoutManager().reportOuterHeight(getConnector(),
                     outerHeight);
         }