From: Artur Signell Date: Thu, 6 Nov 2008 07:04:17 +0000 (+0000) Subject: Fixed issues with tabsheets using dynamic height (related to #2061) X-Git-Tag: 6.7.0.beta1~3863 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=640b6c4bbf8c1390d56e2bbde0ed7f4b5ddf0c76;p=vaadin-framework.git Fixed issues with tabsheets using dynamic height (related to #2061) svn changeset:5822/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java index 7dcc659ec6..04531d3034 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java @@ -19,7 +19,6 @@ import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; -import com.itmill.toolkit.terminal.gwt.client.BrowserInfo; import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener; import com.itmill.toolkit.terminal.gwt.client.ICaption; import com.itmill.toolkit.terminal.gwt.client.Paintable; @@ -295,6 +294,9 @@ public class ITabsheet extends ITabsheetBase implements } updateTabScroller(); + + renderInformation.updateSize(getElement()); + waitingForResponse = false; } @@ -397,6 +399,7 @@ public class ITabsheet extends ITabsheetBase implements ITabsheet.this.iLayout(); (content).updateFromUIDL(contentUIDL, client); + fixHeight(); ITabsheet.this.removeStyleDependentName("loading"); if (previousVisibleWidget != null) { DOM.setStyleAttribute(previousVisibleWidget.getElement(), @@ -423,6 +426,7 @@ public class ITabsheet extends ITabsheetBase implements } else { DOM.setStyleAttribute(contentNode, "height", ""); renderSpace.setHeight(0); + fixHeight(); } iLayout(); } @@ -448,33 +452,31 @@ public class ITabsheet extends ITabsheetBase implements } public void iLayout() { + if (client != null) { + client.runDescendentsLayout(this); + } + + updateTabScroller(); + + if (tp.getVisibleWidget() >= 0) { + Util.runWebkitOverflowAutoFix(DOM.getParent(tp.getWidget( + tp.getVisibleWidget()).getElement())); + } + } + + private void fixHeight() { if (isDynamicHeight()) { if (tp.getVisibleWidget() >= 0) { Widget widget = tp.getWidget(tp.getVisibleWidget()); int widgetHeight = widget.getOffsetHeight(); DOM.setStyleAttribute(tp.getElement(), "height", widgetHeight + "px"); - if (BrowserInfo.get().isIE6()) { - // 100% height is not good enough for IE6... - tp.setVisibleWidgetHeight(widgetHeight); - } + tp.setVisibleWidgetHeight(widgetHeight); } } else { DOM.setStyleAttribute(tp.getElement(), "height", ""); } - renderInformation.updateSize(getElement()); - - if (client != null) { - client.runDescendentsLayout(this); - } - - updateTabScroller(); - - if (tp.getVisibleWidget() >= 0) { - Util.runWebkitOverflowAutoFix(DOM.getParent(tp.getWidget( - tp.getVisibleWidget()).getElement())); - } } /** @@ -566,6 +568,7 @@ public class ITabsheet extends ITabsheetBase implements * Size has changed so we let the child components know about the * new size. */ + fixHeight(); iLayout(); return false; diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java index 6f0955b370..b5eff5b122 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java @@ -47,8 +47,6 @@ public class ITabsheetPanel extends ComplexPanel { Element el = DOM.createDiv(); DOM.setStyleAttribute(el, "position", "absolute"); DOM.setStyleAttribute(el, "overflow", "auto"); - DOM.setStyleAttribute(el, "width", "100%"); - DOM.setStyleAttribute(el, "height", "100%"); hide(el); return el; }