From 865e8ef626b2a5645114c5b75500d9b435c76c62 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Thu, 16 Feb 2012 09:21:51 +0200 Subject: [PATCH] Make GridLayout react to caption size changes (#8313) --- .../vaadin/terminal/gwt/client/ui/VGridLayoutPaintable.java | 2 +- .../gwt/client/ui/layout/ChildComponentContainer.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ui/VGridLayoutPaintable.java b/src/com/vaadin/terminal/gwt/client/ui/VGridLayoutPaintable.java index a753a40377..909612933b 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VGridLayoutPaintable.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VGridLayoutPaintable.java @@ -174,7 +174,7 @@ public class VGridLayoutPaintable extends VAbstractPaintableWidgetContainer ChildComponentContainer cc = getWidgetForPaintable().widgetToComponentContainer .get(widget); if (cc != null) { - cc.updateCaption(uidl, getConnection()); + cc.updateCaption(uidl, getConnection(), getMeasuredSize()); } if (!getWidgetForPaintable().rendering) { // ensure rel size details are updated diff --git a/src/com/vaadin/terminal/gwt/client/ui/layout/ChildComponentContainer.java b/src/com/vaadin/terminal/gwt/client/ui/layout/ChildComponentContainer.java index dffb418660..6972cfb587 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/layout/ChildComponentContainer.java +++ b/src/com/vaadin/terminal/gwt/client/ui/layout/ChildComponentContainer.java @@ -14,6 +14,7 @@ import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.BrowserInfo; +import com.vaadin.terminal.gwt.client.MeasuredSize; import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize; import com.vaadin.terminal.gwt.client.RenderInformation.Size; import com.vaadin.terminal.gwt.client.UIDL; @@ -406,7 +407,8 @@ public class ChildComponentContainer extends Panel { return widgetSize; } - public void updateCaption(UIDL uidl, ApplicationConnection client) { + public void updateCaption(UIDL uidl, ApplicationConnection client, + MeasuredSize parentSize) { if (VCaption.isNeeded(uidl)) { // We need a caption @@ -416,6 +418,7 @@ public class ChildComponentContainer extends Panel { newCaption = new VCaption(paintable, client); // Set initial height to avoid Safari flicker newCaption.setHeight("18px"); + parentSize.registerDependency(newCaption.getElement()); // newCaption.setHeight(newCaption.getHeight()); // This might // be better... ?? if (BrowserInfo.get().isIE()) { @@ -436,6 +439,7 @@ public class ChildComponentContainer extends Panel { } else { // Caption is not needed if (caption != null) { + parentSize.deRegisterDependency(caption.getElement()); remove(caption); } -- 2.39.5