This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 82a87a6f9dc1ee411fc82286353d5bdd0b69888a
Author: Alex Harui <aha...@apache.org>
AuthorDate: Thu Dec 6 21:29:00 2018 -0800

    improve size to content handling.  Right now in Royale, the target is not 
guaranteed to be sized before layout if sizing to content
---
 .../src/main/royale/spark/layouts/HorizontalLayout.as  | 18 +++++++++---------
 .../src/main/royale/spark/layouts/VerticalLayout.as    | 16 ++++++++--------
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/HorizontalLayout.as
 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/HorizontalLayout.as
index a77be15..1bf83a3 100644
--- 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/HorizontalLayout.as
+++ 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/HorizontalLayout.as
@@ -1989,13 +1989,13 @@ public class HorizontalLayout extends LayoutBase
      *  for the initial layout and then, if it has changed, we loop through 
      *  the layout items again and fix up the y/height values.
      */
-    private function updateDisplayListVirtual():void
+    private function updateDisplayListVirtual(targetWidth:Number, 
targetHeight:Number):void
     {
         var layoutTarget:GroupBase = target; 
         var eltCount:int = layoutTarget.numElements;
-        var targetHeight:Number = Math.max(0, layoutTarget.height - paddingTop 
- paddingBottom);
+        targetHeight = Math.max(0, targetHeight - paddingTop - paddingBottom);
         var minVisibleX:Number = layoutTarget.horizontalScrollPosition;
-        var maxVisibleX:Number = minVisibleX + layoutTarget.width;
+        var maxVisibleX:Number = minVisibleX + targetWidth;
        
         var contentWidth:Number;
         var paddedContentWidth:Number;
@@ -2070,7 +2070,7 @@ public class HorizontalLayout extends LayoutBase
 
         // Third pass: if neccessary, fix up x based on updated contentWidth
         contentWidth = llv.end(llv.length - 1) - paddingLeft;
-        var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft 
- paddingRight);
+        targetWidth = Math.max(0, targetWidth - paddingLeft - paddingRight);
         if (contentWidth < targetWidth)
         {
             var excessWidth:Number = targetWidth - contentWidth;
@@ -2108,11 +2108,11 @@ public class HorizontalLayout extends LayoutBase
     /**
      *  @private 
      */
-    private function updateDisplayListReal():void
+    private function updateDisplayListReal(targetWidth:Number, 
targetHeight:Number):void
     {
         var layoutTarget:GroupBase = target;
-        var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft 
- paddingRight);
-        var targetHeight:Number = Math.max(0, layoutTarget.height - paddingTop 
- paddingBottom);
+        targetWidth = Math.max(0, targetWidth - paddingLeft - paddingRight);
+        targetHeight = Math.max(0, targetHeight - paddingTop - paddingBottom);
         
         var layoutElement:ILayoutElement;
         var count:int = layoutTarget.numElements;
@@ -2357,9 +2357,9 @@ public class HorizontalLayout extends LayoutBase
         }
 
         if (useVirtualLayout) 
-            updateDisplayListVirtual();
+            updateDisplayListVirtual(unscaledWidth, unscaledHeight);
         else
-            updateDisplayListReal();
+            updateDisplayListReal(unscaledWidth, unscaledHeight);
     }
     
     /**
diff --git 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/VerticalLayout.as
 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/VerticalLayout.as
index d56650a..44e4bfe 100644
--- 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/VerticalLayout.as
+++ 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/VerticalLayout.as
@@ -1847,13 +1847,13 @@ public class VerticalLayout extends LayoutBase
      *  for the initial layout and then, if it has changed, we loop through 
      *  the layout items again and fix up the x/width values.
      */
-    private function updateDisplayListVirtual():void
+    private function updateDisplayListVirtual(targetWidth:Number, 
targetHeight:Number):void
     {
         var layoutTarget:GroupBase = target; 
         var eltCount:int = layoutTarget.numElements;
-        var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft 
- paddingRight);
+        targetWidth = Math.max(0, targetWidth - paddingLeft - paddingRight);
         var minVisibleY:Number = layoutTarget.verticalScrollPosition;
-        var maxVisibleY:Number = minVisibleY + layoutTarget.height;
+        var maxVisibleY:Number = minVisibleY + targetHeight;
        
                var contentHeight:Number;
                var paddedContentHeight:Number;
@@ -1966,11 +1966,11 @@ public class VerticalLayout extends LayoutBase
     /**
      *  @private
      */
-    private function updateDisplayListReal():void
+    private function updateDisplayListReal(targetWidth:Number, 
targetHeight:Number):void
     {
         var layoutTarget:GroupBase = target;
-        var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft 
- paddingRight);
-        var targetHeight:Number = Math.max(0, layoutTarget.height - paddingTop 
- paddingBottom);
+        targetWidth = Math.max(0, targetWidth - paddingLeft - paddingRight);
+        targetHeight = Math.max(0, targetHeight - paddingTop - paddingBottom);
         
         var layoutElement:ILayoutElement;
         var count:int = layoutTarget.numElements;
@@ -2190,9 +2190,9 @@ public class VerticalLayout extends LayoutBase
         }
         
         if (useVirtualLayout) 
-            updateDisplayListVirtual();
+            updateDisplayListVirtual(unscaledWidth, unscaledHeight);
         else
-            updateDisplayListReal();
+            updateDisplayListReal(unscaledWidth, unscaledHeight);
     }
     
     /**

Reply via email to