You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2014/12/20 19:48:08 UTC

[4/8] git commit: [flex-sdk] [refs/heads/develop] - Now, if any ancestor chain of BusyIndicator becomes visible, it will start spinning. Fixes bug https://issues.apache.org/jira/browse/FLEX-34701

Now, if any ancestor chain of BusyIndicator becomes visible, it will start spinning.
Fixes bug https://issues.apache.org/jira/browse/FLEX-34701


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

Branch: refs/heads/develop
Commit: 6b25cc3cebb2b7201f79e832e2ba8740b170ab50
Parents: efbdca7
Author: OmPrakash Muppirala <bi...@gmail.com>
Authored: Fri Dec 19 17:40:01 2014 -0800
Committer: Erik de Bruin <er...@ixsoftware.nl>
Committed: Sat Dec 20 19:46:37 2014 +0100

----------------------------------------------------------------------
 .../spark/src/spark/components/BusyIndicator.as | 54 +++++++++++++++++++-
 1 file changed, 52 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/6b25cc3c/frameworks/projects/spark/src/spark/components/BusyIndicator.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/components/BusyIndicator.as b/frameworks/projects/spark/src/spark/components/BusyIndicator.as
index 1f665ee..259393d 100644
--- a/frameworks/projects/spark/src/spark/components/BusyIndicator.as
+++ b/frameworks/projects/spark/src/spark/components/BusyIndicator.as
@@ -24,6 +24,7 @@ package spark.components
 	import mx.core.IUIComponent;
 	import mx.core.IVisualElement;
 	import mx.events.FlexEvent;
+	import mx.events.PropertyChangeEvent;
 	import mx.states.State;
 	
 	import spark.components.supportClasses.SkinnableComponent;
@@ -146,10 +147,48 @@ package spark.components
 			];
 		}
 		
+		override protected function commitProperties():void
+		{
+			if (effectiveVisibilityChanged)
+			{
+				// if visibility changed, re-compute them here
+				computeEffectiveVisibility();
+				
+				if (canRotate())
+				{
+					currentState = "rotatingState";
+				}
+				else
+				{
+					currentState = "notRotatingState";
+				}
+				
+				invalidateSkinState();
+				effectiveVisibilityChanged = false;
+			}
+			super.commitProperties();
+		}
+		
 		override protected function getCurrentSkinState():String
 		{
 			return currentState;
-		} 
+		}
+		
+		/**
+		 *  @private
+		 *  Override so we know when visibility is set. The initialized
+		 *  property calls setVisible() with noEvent == true
+		 *  so we wouldn't get a visibility event if we just listened
+		 *  for events.
+		 */
+		override public function setVisible(value:Boolean,
+											noEvent:Boolean = false):void
+		{
+			super.setVisible(value, noEvent);
+			
+			effectiveVisibilityChanged = true;
+			invalidateProperties();
+		}
 		
 		private function addedToStageHandler(event:Event):void
 		{
@@ -160,8 +199,8 @@ package spark.components
 			if (canRotate())
 				currentState = "rotatingState";
 			
-			addVisibilityListeners();
 			invalidateSkinState();
+			addVisibilityListeners();
 		}
 		
 		private function removedFromStageHandler(event:Event):void
@@ -274,6 +313,17 @@ package spark.components
 			invalidateProperties();
 		}
 		
+		override protected function layer_PropertyChange(event:PropertyChangeEvent):void
+		{
+			super.layer_PropertyChange(event);
+			
+			if (event.property == "effectiveVisibility")
+			{
+				effectiveVisibilityChanged = true;
+				invalidateProperties();
+			}
+		}
+		
 		
 	}
 }