From: Leif Åstrand Date: Tue, 3 Apr 2012 11:27:14 +0000 (+0300) Subject: Run onChildSizeChange for new children X-Git-Tag: 7.0.0.alpha2~163 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=307ad43d571f4f5c9b8792632efb728c4460f4be;p=vaadin-framework.git Run onChildSizeChange for new children --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java b/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java index 988c1558cc..3ddeec10b7 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java @@ -157,8 +157,9 @@ public class RootConnector extends AbstractComponentContainerConnector { UIDL childUidl = uidl.getChildUIDL(childIndex); final ComponentConnector lo = client.getPaintable(childUidl); + boolean layoutChanged = getWidget().layout != lo; if (getWidget().layout != null) { - if (getWidget().layout != lo) { + if (layoutChanged) { // remove old client.unregisterPaintable(getWidget().layout); if (childStateChangeHandlerRegistration != null) { @@ -170,12 +171,15 @@ public class RootConnector extends AbstractComponentContainerConnector { getWidget().layout = lo; } } else { - if (getWidget().layout != lo) { + getWidget().setWidget(lo.getWidget()); + getWidget().layout = lo; + if (layoutChanged) { childStateChangeHandlerRegistration = lo .addStateChangeHandler(childStateChangeHandler); + // Must handle new child here as state change events are already + // fired + onChildSizeChange(); } - getWidget().setWidget(lo.getWidget()); - getWidget().layout = lo; } getWidget().layout.updateFromUIDL(childUidl, client);