From 307ad43d571f4f5c9b8792632efb728c4460f4be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Tue, 3 Apr 2012 14:27:14 +0300 Subject: [PATCH] Run onChildSizeChange for new children --- .../vaadin/terminal/gwt/client/ui/RootConnector.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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); -- 2.39.5