touch up metrics and layout

Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/e19c8198
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e19c8198
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e19c8198

Branch: refs/heads/develop
Commit: e19c81980cf648b74cc33594e905d00dc6ce99d3
Parents: ac1fc71
Author: Alex Harui <[email protected]>
Authored: Thu Jul 30 16:19:19 2015 -0700
Committer: Alex Harui <[email protected]>
Committed: Thu Jul 30 16:19:19 2015 -0700

----------------------------------------------------------------------
 .../as/src/org/apache/flex/utils/BeadMetrics.as | 38 +++++++++++++-------
 .../org/apache/flex/html/beads/ContainerView.as |  8 ++---
 2 files changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e19c8198/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as 
b/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
index bd87470..220f6d0 100644
--- a/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
+++ b/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as
@@ -48,25 +48,37 @@ public class BeadMetrics
        public static function getMetrics(object:Object) : UIMetrics
        {
                var borderThickness:Object = 
ValuesManager.valuesImpl.getValue(object,"border-width");
+        var borderStyle:Object = 
ValuesManager.valuesImpl.getValue(object,"border-style");
+        var border:Object = ValuesManager.valuesImpl.getValue(object,"border");
                var borderOffset:Number;
-               if( borderThickness == null ) 
+        if (borderStyle == "none")
+            borderOffset = 0;
+        else if (borderThickness != null)
         {
-            borderThickness = 
ValuesManager.valuesImpl.getValue(object,"border");
-            if (borderThickness != null)
+            borderOffset = Number(borderThickness);
+            if( isNaN(borderOffset) ) borderOffset = 0;            
+        }
+        else // no style and/or no width
+        {
+            border = ValuesManager.valuesImpl.getValue(object,"border");
+            if (border != null)
             {
-                if (borderThickness is Array)
-                    borderOffset = CSSUtils.toNumber(borderThickness[0], 
object.width);
+                if (border is Array)
+                {
+                    borderOffset = CSSUtils.toNumber(border[0], object.width);
+                    borderStyle = border[1];
+                }
+                else if (border == "none")
+                    borderOffset = 0;
+                else if (border is String)
+                    borderOffset = CSSUtils.toNumber(border as String, 
object.width);
                 else
-                    borderOffset = CSSUtils.toNumber(borderThickness as 
String, object.width);
+                    borderOffset = Number(border);
             }
-            else
+            else // no border style set at all so default to none
                 borderOffset = 0;
-               }
-               else {
-                       borderOffset = Number(borderThickness);
-                       if( isNaN(borderOffset) ) borderOffset = 0;
-               }
-               
+        }
+        
                var paddingLeft:Object;
                var paddingTop:Object;
                var paddingRight:Object;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e19c8198/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
index e7fd2ae..4785ed3 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
@@ -279,8 +279,8 @@ package org.apache.flex.html.beads
                        
                        viewportModel.contentArea = contentView;
                        viewportModel.contentIsHost = false;
-                       viewportModel.contentWidth = host.width - metrics.left 
- metrics.right;
-                       viewportModel.contentHeight = host.height - metrics.top 
- metrics.bottom;
+                       viewportModel.contentWidth = Math.max(host.width - 
metrics.left - metrics.right, 0);
+                       viewportModel.contentHeight = Math.max(host.height - 
metrics.top - metrics.bottom, 0);
                        viewportModel.contentX = metrics.left;
                        viewportModel.contentY = metrics.top;
                        
@@ -347,13 +347,13 @@ package org.apache.flex.html.beads
                        else if (!host.isWidthSizedToContent() && 
host.isHeightSizedToContent())
                        {
                                viewport.needsHorizontalScroller();
-                               
host.setHeight(viewportModel.contentHeight-metrics.top-metrics.bottom, false);
+                               
host.setHeight(viewportModel.contentHeight+metrics.top+metrics.bottom, false);
                                resizeViewport();
                        }
                        else if (host.isWidthSizedToContent() && 
!host.isHeightSizedToContent())
                        {
                                viewport.needsVerticalScroller();
-                               
host.setWidth(viewportModel.contentWidth-metrics.left-metrics.right, false);
+                               
host.setWidth(viewportModel.contentWidth+metrics.left+metrics.right, false);
                                resizeViewport();
                        }
                        else {

Reply via email to