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 2017/05/01 03:48:34 UTC

[35/50] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - run layout in a few more scenarios

run layout in a few more scenarios


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

Branch: refs/heads/develop
Commit: b06d5a1d869fbe5f013cd4e83fed6b799bbdfd4b
Parents: e828d17
Author: Alex Harui <ah...@apache.org>
Authored: Wed Apr 26 22:47:37 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Apr 27 14:15:17 2017 -0700

----------------------------------------------------------------------
 .../flex/org/apache/flex/core/LayoutBase.as     | 33 +++++++++++++++-----
 1 file changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b06d5a1d/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
index f23f035..979ebc7 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
@@ -53,6 +53,8 @@ package org.apache.flex.core
 		{
 		}
 
+		private var sawInitComplete:Boolean;
+		
         /**
 		 * The strand/host container is also an ILayoutChild because
          * it can have its size dictated by the host's parent which is
@@ -116,12 +118,19 @@ package org.apache.flex.core
 		protected function handleChildrenAdded(event:Event):void
 		{
 			COMPILE::SWF {
-				var n:Number = layoutView.numElements;
-				for(var i:int=0; i < n; i++) {
-					var child:IEventDispatcher = layoutView.getElementAt(i) as IEventDispatcher;
-					child.addEventListener("widthChanged", childResizeHandler);
-					child.addEventListener("heightChanged", childResizeHandler);
-					child.addEventListener("sizeChanged", childResizeHandler);
+				if (sawInitComplete)
+				{
+					performLayout();
+				}
+				else
+				{
+					var n:Number = layoutView.numElements;
+					for(var i:int=0; i < n; i++) {
+						var child:IEventDispatcher = layoutView.getElementAt(i) as IEventDispatcher;
+						child.addEventListener("widthChanged", childResizeHandler);
+						child.addEventListener("heightChanged", childResizeHandler);
+						child.addEventListener("sizeChanged", childResizeHandler);
+					}
 				}
 			}
 		}
@@ -163,7 +172,13 @@ package org.apache.flex.core
 		 */
 		protected function handleInitComplete(event:Event):void
 		{
-			performLayout();
+			sawInitComplete = true;
+			
+			// Complete the setup if the height is sized to content or has been explicitly set
+            // and the width is sized to content or has been explicitly set
+			if ((host.isHeightSizedToContent() || !isNaN(host.explicitHeight)) &&
+                (host.isWidthSizedToContent() || !isNaN(host.explicitWidth)))
+	    		performLayout();
 		}
 		
 		/**
@@ -195,8 +210,10 @@ package org.apache.flex.core
 				ml = 0;
 			if (marginRight == "auto")
 				mr = 0;
+			if (margin == "auto")
+			    ml = mr = mt = mb = 0;
 			
-			return {left:ml, top:mt, right:mr, bottom:mb};
+			return {left:ml, top:mt, right:mr, bottom:mb, auto: (marginLeft == "auto" && marginRight == "auto") || margin == "auto"};
 		}
 		
 		/**