From: Artur Signell Date: Mon, 1 Dec 2008 13:48:14 +0000 (+0000) Subject: Fix for #2250 - Avoid negative sizes in IOrderedLayout X-Git-Tag: 6.7.0.beta1~3689 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=5b3c3c68debdf09f01ce04150cb094bc1c4d9108;p=vaadin-framework.git Fix for #2250 - Avoid negative sizes in IOrderedLayout svn changeset:6051/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java index ed3b1711ee..a626bcaae1 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java @@ -549,18 +549,33 @@ public class IOrderedLayout extends CellBasedLayout { } if (isDynamicWidth()) { - setOuterLayoutWidth(activeLayoutWidth); - activeLayoutSize.setWidth(activeLayoutWidth); + setActiveLayoutWidth(activeLayoutWidth); + setOuterLayoutWidth(activeLayoutSize.getWidth()); } if (isDynamicHeight()) { - activeLayoutSize.setHeight(activeLayoutHeight); - setOuterLayoutHeight(activeLayoutHeight); + setActiveLayoutHeight(activeLayoutHeight); + setOuterLayoutHeight(activeLayoutSize.getHeight()); } return activeLayoutSize; } + private void setActiveLayoutWidth(int activeLayoutWidth) { + if (activeLayoutWidth < 0) { + activeLayoutWidth = 0; + } + activeLayoutSize.setWidth(activeLayoutWidth); + } + + private void setActiveLayoutHeight(int activeLayoutHeight) { + if (activeLayoutHeight < 0) { + activeLayoutHeight = 0; + } + activeLayoutSize.setHeight(activeLayoutHeight); + + } + private void setOuterLayoutWidth(int activeLayoutWidth) { super.setWidth((activeLayoutWidth + activeMargins.getHorizontal()) + "px"); @@ -727,7 +742,7 @@ public class IOrderedLayout extends CellBasedLayout { super.setHeight(height); if (height != null && !height.equals("")) { - activeLayoutSize.setHeight(getOffsetHeight() + setActiveLayoutHeight(getOffsetHeight() - activeMargins.getVertical()); } @@ -749,7 +764,7 @@ public class IOrderedLayout extends CellBasedLayout { super.setWidth(width); if (width != null && !width.equals("")) { - activeLayoutSize.setWidth(getOffsetWidth() + setActiveLayoutWidth(getOffsetWidth() - activeMargins.getHorizontal()); }