diff options
-rw-r--r-- | client/src/com/vaadin/client/LayoutManager.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/client/src/com/vaadin/client/LayoutManager.java b/client/src/com/vaadin/client/LayoutManager.java index f77b61a5a3..dfcf2cb5bb 100644 --- a/client/src/com/vaadin/client/LayoutManager.java +++ b/client/src/com/vaadin/client/LayoutManager.java @@ -605,15 +605,7 @@ public class LayoutManager { ComponentConnector componentConnector = (ComponentConnector) connectorMap .getConnector(connectorId); - // Delay the overflow fix if the involved connectors might still - // change - boolean connectorChangesExpected = !currentDependencyTree - .noMoreChangesExpected(componentConnector); - boolean parentChangesExcpected = componentConnector.getParent() instanceof ComponentConnector - && !currentDependencyTree - .noMoreChangesExpected((ComponentConnector) componentConnector - .getParent()); - if (connectorChangesExpected || parentChangesExcpected) { + if (delayOverflowFix(componentConnector)) { delayedOverflowFixes.add(connectorId); continue; } @@ -732,6 +724,23 @@ public class LayoutManager { return measureCount; } + /* + * Delay the overflow fix if the involved connectors might still change + */ + private boolean delayOverflowFix(ComponentConnector componentConnector) { + if (!currentDependencyTree.noMoreChangesExpected(componentConnector)) { + return true; + } + ServerConnector parent = componentConnector.getParent(); + if (parent instanceof ComponentConnector + && !currentDependencyTree + .noMoreChangesExpected((ComponentConnector) parent)) { + return true; + } + + return false; + } + private void measureConnector(ComponentConnector connector) { Profiler.enter("LayoutManager.measureConnector"); Element element = connector.getWidget().getElement(); |