You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2015/07/31 01:21:55 UTC

[3/3] git commit: [flex-asjs] [refs/heads/develop] - touch up metrics and layout

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 <ah...@apache.org>
Authored: Thu Jul 30 16:19:19 2015 -0700
Committer: Alex Harui <ah...@apache.org>
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 {