]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix for #2250 - Avoid negative sizes in IOrderedLayout
authorArtur Signell <artur.signell@itmill.com>
Mon, 1 Dec 2008 13:48:14 +0000 (13:48 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 1 Dec 2008 13:48:14 +0000 (13:48 +0000)
svn changeset:6051/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java

index ed3b1711eed3c92354d2e7ca62fd6c61ac03511a..a626bcaae108e967a23630054423986770a7710f 100644 (file)
@@ -549,18 +549,33 @@ public class IOrderedLayout extends CellBasedLayout {
         }\r
 \r
         if (isDynamicWidth()) {\r
-            setOuterLayoutWidth(activeLayoutWidth);\r
-            activeLayoutSize.setWidth(activeLayoutWidth);\r
+            setActiveLayoutWidth(activeLayoutWidth);\r
+            setOuterLayoutWidth(activeLayoutSize.getWidth());\r
         }\r
 \r
         if (isDynamicHeight()) {\r
-            activeLayoutSize.setHeight(activeLayoutHeight);\r
-            setOuterLayoutHeight(activeLayoutHeight);\r
+            setActiveLayoutHeight(activeLayoutHeight);\r
+            setOuterLayoutHeight(activeLayoutSize.getHeight());\r
         }\r
 \r
         return activeLayoutSize;\r
     }\r
 \r
+    private void setActiveLayoutWidth(int activeLayoutWidth) {\r
+        if (activeLayoutWidth < 0) {\r
+            activeLayoutWidth = 0;\r
+        }\r
+        activeLayoutSize.setWidth(activeLayoutWidth);\r
+    }\r
+\r
+    private void setActiveLayoutHeight(int activeLayoutHeight) {\r
+        if (activeLayoutHeight < 0) {\r
+            activeLayoutHeight = 0;\r
+        }\r
+        activeLayoutSize.setHeight(activeLayoutHeight);\r
+\r
+    }\r
+\r
     private void setOuterLayoutWidth(int activeLayoutWidth) {\r
         super.setWidth((activeLayoutWidth + activeMargins.getHorizontal())\r
                 + "px");\r
@@ -727,7 +742,7 @@ public class IOrderedLayout extends CellBasedLayout {
         super.setHeight(height);\r
 \r
         if (height != null && !height.equals("")) {\r
-            activeLayoutSize.setHeight(getOffsetHeight()\r
+            setActiveLayoutHeight(getOffsetHeight()\r
                     - activeMargins.getVertical());\r
         }\r
 \r
@@ -749,7 +764,7 @@ public class IOrderedLayout extends CellBasedLayout {
         super.setWidth(width);\r
 \r
         if (width != null && !width.equals("")) {\r
-            activeLayoutSize.setWidth(getOffsetWidth()\r
+            setActiveLayoutWidth(getOffsetWidth()\r
                     - activeMargins.getHorizontal());\r
         }\r
 \r