From c95698a5950c0cb7260d55661bf1d038c71b1a8d Mon Sep 17 00:00:00 2001 From: Teppo Kurki Date: Tue, 30 Jun 2015 09:28:29 +0300 Subject: Do not let Escalator set width to spacer row's TD element (#18223) Change-Id: I8dec7bbbfc93436eb2fbc1c15cb53e6bfca99e78 --- .../src/com/vaadin/client/widgets/Escalator.java | 31 ++++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'client') diff --git a/client/src/com/vaadin/client/widgets/Escalator.java b/client/src/com/vaadin/client/widgets/Escalator.java index 1bb3fe3747..436b512294 100644 --- a/client/src/com/vaadin/client/widgets/Escalator.java +++ b/client/src/com/vaadin/client/widgets/Escalator.java @@ -1816,20 +1816,23 @@ public class Escalator extends Widget implements RequiresResize, public void reapplyColumnWidths() { Element row = root.getFirstChildElement(); while (row != null) { - Element cell = row.getFirstChildElement(); - int columnIndex = 0; - while (cell != null) { - final double width = getCalculatedColumnWidthWithColspan( - cell, columnIndex); + // Only handle non-spacer rows + if (!body.spacerContainer.isSpacer(row)) { + Element cell = row.getFirstChildElement(); + int columnIndex = 0; + while (cell != null) { + final double width = getCalculatedColumnWidthWithColspan( + cell, columnIndex); - /* - * TODO Should Escalator implement ProvidesResize at some - * point, this is where we need to do that. - */ - cell.getStyle().setWidth(width, Unit.PX); + /* + * TODO Should Escalator implement ProvidesResize at + * some point, this is where we need to do that. + */ + cell.getStyle().setWidth(width, Unit.PX); - cell = cell.getNextSiblingElement(); - columnIndex++; + cell = cell.getNextSiblingElement(); + columnIndex++; + } } row = row.getNextSiblingElement(); } @@ -4795,7 +4798,7 @@ public class Escalator extends Widget implements RequiresResize, } /** Checks if a given element is a spacer element */ - public boolean isSpacer(TableRowElement focusedRow) { + public boolean isSpacer(Element row) { /* * If this needs optimization, we could do a more heuristic check @@ -4804,7 +4807,7 @@ public class Escalator extends Widget implements RequiresResize, */ for (SpacerImpl spacer : rowIndexToSpacer.values()) { - if (spacer.getRootElement().equals(focusedRow)) { + if (spacer.getRootElement().equals(row)) { return true; } } -- cgit v1.2.3