diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-06-19 09:34:13 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-06-19 09:34:13 +0000 |
commit | e96613c6dc97e1793919c42539fdc20dcb62bdbc (patch) | |
tree | 89f68e47599e89357d7d3b86928fd3c283e70caa | |
parent | 71900462563bb1df8142930d5d413556ce944f14 (diff) | |
download | vaadin-framework-e96613c6dc97e1793919c42539fdc20dcb62bdbc.tar.gz vaadin-framework-e96613c6dc97e1793919c42539fdc20dcb62bdbc.zip |
fixes #1838 (rendering bug on FF2)
svn changeset:4923/svn branch:trunk
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java index ac3a888831..68bb5396c1 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java @@ -8,7 +8,9 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.HasHorizontalAlignment; @@ -18,6 +20,7 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.HasHorizontalAlignment.HorizontalAlignmentConstant; import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; +import com.itmill.toolkit.terminal.gwt.client.BrowserInfo; import com.itmill.toolkit.terminal.gwt.client.CaptionWrapper; import com.itmill.toolkit.terminal.gwt.client.Container; import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener; @@ -35,6 +38,8 @@ public class IGridLayout extends SimplePanel implements Paintable, Container, private boolean needsLayout = false; + private boolean needsFF2Hack = BrowserInfo.get().isFF2(); + private Element margin = DOM.createDiv(); private Element meterElement; @@ -224,6 +229,27 @@ public class IGridLayout extends SimplePanel implements Paintable, Container, client.unregisterPaintable(w.getPaintable()); widgetToCaptionWrapper.remove(w.getPaintable()); } + // fix rendering bug on FF2 (#1838) + if (needsFF2Hack) { + DeferredCommand.addCommand(new Command() { + public void execute() { + Element firstcell = getCellFormatter().getElement(0, 0); + if (firstcell != null) { + String styleAttribute = DOM.getStyleAttribute( + firstcell, "verticalAlign"); + DOM.setStyleAttribute(firstcell, "verticalAlign", + ""); + int elementPropertyInt = DOM.getElementPropertyInt( + firstcell, "offsetWidth"); + DOM.setStyleAttribute(firstcell, "verticalAlign", + styleAttribute); + if (elementPropertyInt > 0) { + needsFF2Hack = false; + } + } + } + }); + } } public boolean hasChildComponent(Widget component) { |