summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJouni Koivuviita <jouni@jounikoivuviita.com>2012-04-11 17:32:28 +0300
committerJouni Koivuviita <jouni@jounikoivuviita.com>2012-04-11 17:32:28 +0300
commit1175124cb966492110d8b5fe8e8ac1ecb1c8c71f (patch)
treed86a2892a7414feec1ebc9a64aa206c082c9c9f3 /src
parentd930ea10597952ca5d416d688d4c70d484dbe0ad (diff)
parent405360bd772cb4b180deada27c8f565a65da047b (diff)
downloadvaadin-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.java15
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/TableConnector.java3
-rw-r--r--src/com/vaadin/ui/TabSheet.java4
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();
}