aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2013-01-15 15:08:52 +0000
committerVaadin Code Review <review@vaadin.com>2013-01-15 15:08:52 +0000
commit52b392008bf65e6471f1c2621a63789b8c030ced (patch)
tree13edfae6397766fb12f75fe620d859ea0d275614
parent1360d1e5a84ba0770615de9ea4b8b56a43e6e1ac (diff)
parent6ab0caeca9f1fe8b441f9555137b8864e4b22a5a (diff)
downloadvaadin-framework-52b392008bf65e6471f1c2621a63789b8c030ced.tar.gz
vaadin-framework-52b392008bf65e6471f1c2621a63789b8c030ced.zip
Merge "Fixes issue where Tabsheet does not resize when the content of the tabsheet changes after the tabsheet has rendered #10697"
-rw-r--r--client/src/com/vaadin/client/LayoutManager.java11
-rw-r--r--client/src/com/vaadin/client/ui/orderedlayout/Slot.java31
2 files changed, 11 insertions, 31 deletions
diff --git a/client/src/com/vaadin/client/LayoutManager.java b/client/src/com/vaadin/client/LayoutManager.java
index d7dce82b65..094afc5f01 100644
--- a/client/src/com/vaadin/client/LayoutManager.java
+++ b/client/src/com/vaadin/client/LayoutManager.java
@@ -28,6 +28,7 @@ import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Overflow;
import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.RootPanel;
import com.vaadin.client.MeasuredSize.MeasureResult;
import com.vaadin.client.ui.ManagedLayout;
import com.vaadin.client.ui.PostLayoutListener;
@@ -279,6 +280,16 @@ public class LayoutManager {
Duration passDuration = new Duration();
passes++;
+ /*
+ * Fixes IE8 issues where IE8 sometimes forgets to update the size
+ * of the containing element. To force a reflow by modifying the
+ * magical zoom property.
+ */
+ if (BrowserInfo.get().isIE8()) {
+ int zoom = RootPanel.get().getElement().getPropertyInt("zoom");
+ RootPanel.get().getElement().setPropertyInt("zoom", zoom);
+ }
+
int measuredConnectorCount = measureConnectors(
currentDependencyTree, everythingNeedsMeasure);
everythingNeedsMeasure = false;
diff --git a/client/src/com/vaadin/client/ui/orderedlayout/Slot.java b/client/src/com/vaadin/client/ui/orderedlayout/Slot.java
index 8cec3f755a..795b724292 100644
--- a/client/src/com/vaadin/client/ui/orderedlayout/Slot.java
+++ b/client/src/com/vaadin/client/ui/orderedlayout/Slot.java
@@ -18,17 +18,14 @@ package com.vaadin.client.ui.orderedlayout;
import java.util.List;
-import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.LayoutManager;
import com.vaadin.client.StyleConstants;
-import com.vaadin.client.ui.layout.ElementResizeEvent;
import com.vaadin.client.ui.layout.ElementResizeListener;
import com.vaadin.shared.ui.AlignmentInfo;
@@ -95,24 +92,6 @@ public final class Slot extends SimplePanel {
private ElementResizeListener spacingResizeListener;
- /*
- * IE8 forgets to re-render the slot if the widget inside the slot changes
- * size. To force IE to re-render we apply the well know zoom property to
- * the widget which triggers a re-render of the slot element.
- */
- private static final ElementResizeListener ie8ElementRefresherListener = new ElementResizeListener() {
-
- @Override
- public void onElementResize(final ElementResizeEvent e) {
- Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
- @Override
- public void execute() {
- int zoom = e.getElement().getPropertyInt("zoom");
- e.getElement().setPropertyInt("zoom", zoom);
- }
- });
- }
- };
// Caption is placed after component unless there is some part which
// moves it above.
@@ -182,11 +161,6 @@ public final class Slot extends SimplePanel {
lm.addElementResizeListener(getSpacingElement(),
spacingResizeListener);
}
-
- if (BrowserInfo.get().isIE8()) {
- lm.addElementResizeListener(getWidget().getElement(),
- ie8ElementRefresherListener);
- }
}
}
@@ -208,11 +182,6 @@ public final class Slot extends SimplePanel {
lm.removeElementResizeListener(getSpacingElement(),
spacingResizeListener);
}
-
- if (BrowserInfo.get().isIE8()) {
- lm.removeElementResizeListener(getWidget().getElement(),
- ie8ElementRefresherListener);
- }
}
}