You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/03/15 17:20:21 UTC
[royale-asjs] 03/04: Core, Basic, MXRoyale,
SparkRoyale with beforeLayout returning a boolean so we can be
smarter about skipping some layout passes
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 c3a3d4f7faf1e1f9a9f8105d27b86f05e5e7a446
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sat Mar 14 11:51:58 2020 -0700
Core,Basic,MXRoyale,SparkRoyale with beforeLayout returning a boolean so we can be smarter about skipping some layout passes
---
.../src/main/royale/org/apache/royale/html/DividedContainer.as | 4 ++--
.../src/main/royale/org/apache/royale/html/beads/ContainerView.as | 4 +++-
.../src/main/royale/org/apache/royale/html/beads/GroupView.as | 3 ++-
.../org/apache/royale/html/supportClasses/MXMLItemRenderer.as | 4 ++--
.../Core/src/main/royale/org/apache/royale/core/ILayoutHost.as | 4 +++-
.../Core/src/main/royale/org/apache/royale/core/LayoutBase.as | 8 +++++---
.../src/main/royale/spark/components/beads/GroupView.as | 3 ++-
.../main/royale/spark/components/beads/SkinnableContainerView.as | 3 ++-
.../src/main/royale/spark/components/beads/SparkContainerView.as | 3 ++-
9 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DividedContainer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DividedContainer.as
index 1faddc9..cd5b26d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DividedContainer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DividedContainer.as
@@ -181,9 +181,9 @@ package org.apache.royale.html
/**
* @private
*/
- public function beforeLayout():void
+ public function beforeLayout():Boolean
{
- // does nothing
+ return true;
}
/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
index 0d242a6..4520587 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
@@ -209,7 +209,7 @@ package org.apache.royale.html.beads
* @productversion Royale 0.8
* @royaleignorecoercion org.apache.royale.core.IBorderPaddingMarginValuesImpl
*/
- override public function beforeLayout():void
+ override public function beforeLayout():Boolean
{
var host:ILayoutChild = this.host as ILayoutChild;
var vm:IViewportModel = viewportModel;
@@ -246,6 +246,8 @@ package org.apache.royale.html.beads
viewport.layoutViewportBeforeContentLayout(
hostWidth - vm.borderMetrics.left - vm.borderMetrics.right,
hostHeight - vm.borderMetrics.top - vm.borderMetrics.bottom);
+
+ return true;
}
/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GroupView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GroupView.as
index ea81695..1bb5ddb 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GroupView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GroupView.as
@@ -202,9 +202,10 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public function beforeLayout():void
+ public function beforeLayout():Boolean
{
// This has no use for Group but is here so a subclass can override it.
+ return true;
}
/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MXMLItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MXMLItemRenderer.as
index 5457159..ed1012d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MXMLItemRenderer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MXMLItemRenderer.as
@@ -78,9 +78,9 @@ package org.apache.royale.html.supportClasses
}
}
- public function beforeLayout():void
+ public function beforeLayout():Boolean
{
-
+ return true;
}
public function afterLayout():void
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ILayoutHost.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ILayoutHost.as
index 37fe4e1..7e9161f 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ILayoutHost.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ILayoutHost.as
@@ -43,13 +43,15 @@ package org.apache.royale.core
/**
* Invoked prior to performing the layout.
+ *
+ * @returns false if it isn't worth laying out
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- function beforeLayout():void;
+ function beforeLayout():Boolean;
/**
* Invoked after performing the layout.
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/LayoutBase.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/LayoutBase.as
index aab9889..64b100f 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/LayoutBase.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/LayoutBase.as
@@ -327,9 +327,11 @@ package org.apache.royale.core
var viewBead:ILayoutHost = (host as ILayoutParent).getLayoutHost();
- viewBead.beforeLayout();
- if (layout()) {
- viewBead.afterLayout();
+ if (viewBead.beforeLayout())
+ {
+ if (layout()) {
+ viewBead.afterLayout();
+ }
}
isLayoutRunning = false;
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/GroupView.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/GroupView.as
index 89f221e..a1186e7 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/GroupView.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/GroupView.as
@@ -65,7 +65,7 @@ public class GroupView extends org.apache.royale.html.beads.GroupView
* @productversion Royale 0.0
* @royaleignorecoercion org.apache.royale.core.UIBase
*/
- override public function beforeLayout():void
+ override public function beforeLayout():Boolean
{
var host:GroupBase = _strand as GroupBase;
// some Groups have left/right but are still sized to content.
@@ -75,6 +75,7 @@ public class GroupView extends org.apache.royale.html.beads.GroupView
{
host.layout.measure();
}
+ return true;
}
/**
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
index 668e84c..eb369b7 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
@@ -80,7 +80,7 @@ public class SkinnableContainerView extends SparkContainerView
* @productversion Royale 0.0
* @royaleignorecoercion org.apache.royale.core.UIBase
*/
- override public function beforeLayout():void
+ override public function beforeLayout():Boolean
{
var host:SkinnableContainer = _strand as SkinnableContainer;
if (host.isWidthSizedToContent() || host.isHeightSizedToContent())
@@ -110,6 +110,7 @@ public class SkinnableContainerView extends SparkContainerView
}
}
+ return true;
}
override protected function addViewport():void
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkContainerView.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkContainerView.as
index 8088af0..3923423 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkContainerView.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkContainerView.as
@@ -91,13 +91,14 @@ public class SparkContainerView extends ContainerView
* @productversion Royale 0.0
* @royaleignorecoercion org.apache.royale.core.UIBase
*/
- override public function beforeLayout():void
+ override public function beforeLayout():Boolean
{
var host:SkinnableContainer = _strand as SkinnableContainer;
if (host.isWidthSizedToContent() || host.isHeightSizedToContent())
{
host.layout.measure();
}
+ return true;
}
/**