aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2008-06-19 09:34:13 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2008-06-19 09:34:13 +0000
commite96613c6dc97e1793919c42539fdc20dcb62bdbc (patch)
tree89f68e47599e89357d7d3b86928fd3c283e70caa
parent71900462563bb1df8142930d5d413556ce944f14 (diff)
downloadvaadin-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.java26
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) {