diff options
author | Jouni Koivuviita <jouni@jounikoivuviita.com> | 2012-04-11 17:32:28 +0300 |
---|---|---|
committer | Jouni Koivuviita <jouni@jounikoivuviita.com> | 2012-04-11 17:32:28 +0300 |
commit | 1175124cb966492110d8b5fe8e8ac1ecb1c8c71f (patch) | |
tree | d86a2892a7414feec1ebc9a64aa206c082c9c9f3 /src | |
parent | d930ea10597952ca5d416d688d4c70d484dbe0ad (diff) | |
parent | 405360bd772cb4b180deada27c8f565a65da047b (diff) | |
download | vaadin-framework-1175124cb966492110d8b5fe8e8ac1ecb1c8c71f.tar.gz vaadin-framework-1175124cb966492110d8b5fe8e8ac1ecb1c8c71f.zip |
Merge branch 'layoutgraph' of ssh://dev.vaadin.com/vaadin into layoutgraph
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/LayoutManager.java | 15 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/TableConnector.java | 3 | ||||
-rw-r--r-- | src/com/vaadin/ui/TabSheet.java | 4 |
3 files changed, 16 insertions, 6 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/LayoutManager.java b/src/com/vaadin/terminal/gwt/client/LayoutManager.java index 4c57c5ef9a..c60408209c 100644 --- a/src/com/vaadin/terminal/gwt/client/LayoutManager.java +++ b/src/com/vaadin/terminal/gwt/client/LayoutManager.java @@ -12,7 +12,8 @@ import java.util.Set; import com.google.gwt.core.client.Duration; import com.google.gwt.core.client.JsArrayString; import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.dom.client.Style; +import com.google.gwt.dom.client.Style.Overflow; import com.google.gwt.user.client.Timer; import com.vaadin.terminal.gwt.client.MeasuredSize.MeasureResult; import com.vaadin.terminal.gwt.client.ui.ManagedLayout; @@ -361,8 +362,10 @@ public class LayoutManager { if (!pendingOverflowFixes.isEmpty()) { Duration duration = new Duration(); for (ComponentConnector componentConnector : pendingOverflowFixes) { - componentConnector.getWidget().getElement().getParentElement() - .getStyle().setTop(1, Unit.PX); + Style style = componentConnector.getWidget().getElement() + .getParentElement().getStyle(); + assert (style.getOverflow() == null); + style.setOverflow(Overflow.HIDDEN); } for (ComponentConnector componentConnector : pendingOverflowFixes) { componentConnector.getWidget().getElement().getParentElement() @@ -370,7 +373,7 @@ public class LayoutManager { } for (ComponentConnector componentConnector : pendingOverflowFixes) { componentConnector.getWidget().getElement().getParentElement() - .getStyle().setTop(0, Unit.PX); + .getStyle().clearOverflow(); layoutDependencyTree.setNeedsMeasure(componentConnector, true); ComponentContainerConnector parent = componentConnector .getParent(); @@ -437,8 +440,10 @@ public class LayoutManager { } private void doOverflowAutoFix(ComponentConnector connector) { + // IE9 doesn't need the original fix, but for some reason it needs one if (connector.getParent() instanceof MayScrollChildren - && BrowserInfo.get().requiresOverflowAutoFix() + && (BrowserInfo.get().requiresOverflowAutoFix() || BrowserInfo + .get().isIE9()) && !"absolute".equals(connector.getWidget().getElement() .getStyle().getPosition())) { pendingOverflowFixes.add(connector); diff --git a/src/com/vaadin/terminal/gwt/client/ui/TableConnector.java b/src/com/vaadin/terminal/gwt/client/ui/TableConnector.java index 2c546f40b1..a0db9cd3f9 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/TableConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/TableConnector.java @@ -285,7 +285,8 @@ public class TableConnector extends AbstractComponentContainerConnector table.sizeInit(); Scheduler.get().scheduleFinally(new ScheduledCommand() { public void execute() { - getLayoutManager().setNeedsUpdate(TableConnector.this); + getLayoutManager() + .setHeightNeedsUpdate(TableConnector.this); getLayoutManager().layoutNow(); } }); diff --git a/src/com/vaadin/ui/TabSheet.java b/src/com/vaadin/ui/TabSheet.java index c4c524210f..0c7dea1e52 100644 --- a/src/com/vaadin/ui/TabSheet.java +++ b/src/com/vaadin/ui/TabSheet.java @@ -589,6 +589,10 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, // connector if (selected instanceof ComponentContainer) { ((ComponentContainer) selected).requestRepaintAll(); + } else if (selected instanceof Table) { + // Workaround until there's a generic way of telling a component + // that there is no client side state to rely on. See #8642 + ((Table) selected).refreshRowCache(); } else if (selected != null) { selected.requestRepaint(); } |