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 7628fb6071634646344a74f5fde8f50509dd26de
Author: Alex Harui <[email protected]>
AuthorDate: Sun Nov 22 23:34:54 2020 -0800

    special case height/width in states
---
 .../royale/core/StatesWithTransitionsImpl.as       | 27 +++++++++++++++++-----
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git 
a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
 
b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
index 041ff67..587435a 100644
--- 
a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
+++ 
b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
@@ -65,6 +65,19 @@ package org.apache.royale.core
         private var _strand:IStrand;
         
         private var sawInitComplete:Boolean;
+
+           /**
+            *  @private
+            *  This is a table of pseudonyms.
+            *  Whenever the property being overridden is found in this table,
+            *  the pseudonym is saved/restored instead.
+            */
+           private static const PSEUDONYMS:Object =
+           {
+               width: "explicitWidth",
+               height: "explicitHeight",
+               currentState: "currentStateDeferred"
+           };
         
         /**
          *  @copy org.apache.royale.core.IBead#strand
@@ -262,10 +275,11 @@ package org.apache.royale.core
                 else if (o is SetProperty)
                 {
                     var sp:SetProperty = SetProperty(o);
+                                       var propName:String = 
PSEUDONYMS[sp.name] || sp.name;
                     if (sp.target != null)
-                        sp.document[sp.target][sp.name] = sp.previousValue;
+                        sp.document[sp.target][propName] = sp.previousValue;
                     else
-                        sp.document[sp.name] = sp.previousValue;
+                        sp.document[propName] = sp.previousValue;
                 }
                 else if (o is SetEventHandler)
                 {
@@ -359,15 +373,16 @@ package org.apache.royale.core
                 else if (o is SetProperty)
                 {
                     var sp:SetProperty = SetProperty(o);
+                                       var propName:String = 
PSEUDONYMS[sp.name] || sp.name;
                     if (sp.target != null)
                     {
-                        sp.previousValue = sp.document[sp.target][sp.name];
-                        sp.document[sp.target][sp.name] = sp.value;
+                        sp.previousValue = sp.document[sp.target][propName];
+                        sp.document[sp.target][propName] = sp.value;
                     }
                     else
                     {
-                        sp.previousValue = sp.document[sp.name];
-                        sp.document[sp.name] = sp.value;                       
 
+                        sp.previousValue = sp.document[propName];
+                        sp.document[propName] = sp.value;                      
  
                     }
                 }
                 else if (o is SetEventHandler)

Reply via email to