OPEN - issue REPRISE-32: move methods from protected namespace to private namespace whereever possible
http://j.fork.de:8080/browse/REPRISE-32

	- change: moved some properties and methods of UIComponent to private namespace

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@440 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/UIComponent.as
+++ src/reprise/ui/UIComponent.as
@@ -41,7 +41,6 @@
 		/***************************************************************************
 		*							public properties							   *
 		***************************************************************************/
-		public static var className : String = "UIComponent";

 		/***************************************************************************
@@ -84,27 +83,30 @@
 		protected static const DEFAULT_SCROLLBAR_WIDTH : int = 16;

-		protected var m_containingBlock : UIComponent;
-		protected var m_explicitContainingBlock : UIComponent;
-
+		//attribute properties
 		protected var m_xmlDefinition : XML;
+		protected var m_nodeAttributes : Object;
 		protected var m_cssClasses : String = "";
-		protected var m_cssPseudoClasses : String = "";
-		protected var m_pseudoClassesBackup : String;
 		protected var m_cssId : String = "";
 		protected var m_selectorPath : String;
+
+		//style properties
 		protected var m_currentStyles : ComputedStyles;
 		protected var m_complexStyles : CSSDeclaration;
-		protected var m_specifiedStyles : CSSDeclaration;
+		protected var m_instanceStyles : CSSDeclaration;
 		protected var m_elementDefaultStyles : CSSDeclaration;
-		protected var m_instanceStyles : CSSDeclaration;
-		protected var m_transitionsManager : CSSTransitionsManager;

 		protected var m_autoFlags : Object = {};
-
+		protected var m_positionInFlow : int = 1;
+		protected var m_positioningType : String;
+
+		//validation properties
 		protected var m_stylesInvalidated : Boolean;
-		protected var m_skipNextValidation : Boolean;
-
+		protected var m_dimensionsChanged : Boolean;
+		protected var m_specifiedDimensionsChanged : Boolean;
+		protected var m_selectorPathChanged : Boolean;
+
+		//dimensions and position
 		protected var m_contentBoxWidth : Number = 0;
 		protected var m_contentBoxHeight : Number = 0;
 		protected var m_borderBoxHeight : Number = 0;
@@ -112,8 +114,18 @@
 		protected var m_paddingBoxHeight : Number = 0;
 		protected var m_paddingBoxWidth : Number = 0;

+		protected var m_intrinsicWidth : Number = -1;
+		protected var m_intrinsicHeight : Number = -1;
+
+		protected var m_positionOffset : Point;
+
+		//managers and renderers
+		protected var m_layoutManager : CSSBoxModelLayoutManager;
 		protected var m_borderRenderer : ICSSRenderer;
 		protected var m_backgroundRenderer : ICSSRenderer;
+
+		//displays
+		protected var m_containingBlock : UIComponent;

 		protected var m_upperContentDisplay : Sprite;
 		protected var m_lowerContentDisplay : Sprite;
@@ -121,31 +133,25 @@
 		protected var m_bordersDisplay : Sprite;
 		protected var m_upperContentMask : Sprite;
 		protected var m_lowerContentMask : Sprite;
-		protected var m_scrollbarsDisplay : Sprite;

 		protected var m_vScrollbar : Scrollbar;
 		protected var m_hScrollbar : Scrollbar;

 		protected var m_dropShadowFilter : DropShadowFilter;

-		protected var m_nodeAttributes : Object;
-
-		protected var m_positionInFlow : int = 1;
-		protected var m_oldInFlowStatus : int = -1;
-		protected var m_positioningType : String;
-		protected var m_positionOffset : Point;
-		protected var m_verticalFlowPosition : Number = 0;
-		protected var m_oldOuterBoxDimension : Point;
-
-		protected var m_intrinsicWidth : Number = -1;
-		protected var m_intrinsicHeight : Number = -1;
-
-		protected var m_dimensionsChanged : Boolean;
-		protected var m_specifiedDimensionsChanged : Boolean;
-
-		protected var m_selectorPathChanged : Boolean;
-
-		protected var m_layoutManager : CSSBoxModelLayoutManager;
+
+		/***************************************************************************
+		*							private properties							   *
+		***************************************************************************/
+		private var m_explicitContainingBlock : UIComponent;
+		private var m_cssPseudoClasses : String = "";
+		private var m_pseudoClassesBackup : String;
+		private var m_specifiedStyles : CSSDeclaration;
+		private var m_transitionsManager : CSSTransitionsManager;
+		private var m_skipNextValidation : Boolean;
+		private var m_scrollbarsDisplay : Sprite;
+		private var m_oldInFlowStatus : int = -1;
+		private var m_oldOuterBoxDimension : Point;

 		/***************************************************************************
@@ -1024,6 +1030,11 @@
 			m_upperContentDisplay.name = 'upper_content_display';
 		}

+		/**
+		 * Resets the elements styles.
+		 *
+		 * Mostly used in debugging to enable style reloading.
+		 */
 		protected function resetStyles() : void
 		{
 			m_complexStyles = null;
@@ -1036,6 +1047,14 @@
 			invalidate();
 		}

+		/**
+		 * Executes element validation, refreshing and applying all style properties and
+		 * redrawing the element.
+		 *
+		 * Components shouldn't need to override this method, since it only starts the
+		 * validation cycle and doesn't really implement functionality that's worth
+		 * overriding.
+		 */
 		protected override function validateElement(
 			forceValidation:Boolean = false, validateStyles:Boolean = false) : void
 		{
@@ -1051,6 +1070,7 @@
 			}
 			super.validateElement(forceValidation);
 		}
+
 		/**
 		 * Hook method, executed before the UIComponents' children get validated.
 		 *
@@ -1080,34 +1100,34 @@
 					visible = false;
 					return;
 				}
-				visible = m_visible;
-
-				if (m_currentStyles.overflowY == 'scroll')
-				{
-					if (!m_vScrollbar)
-					{
-						m_vScrollbar = createScrollbar(Scrollbar.ORIENTATION_VERTICAL);
-					}
-					else
-					{
-						m_vScrollbar.setVisibility(true);
-					}
-				}
-
-				if (m_currentStyles.overflowX == 'scroll')
-				{
-					if (!m_hScrollbar)
-					{
-						m_hScrollbar = createScrollbar(Scrollbar.ORIENTATION_HORIZONTAL);
-					}
-					else
-					{
-						m_hScrollbar.setVisibility(true);
-					}
-				}

 				if (m_stylesInvalidated)
 				{
+					visible = m_visible;
+
+					if (m_currentStyles.overflowY == 'scroll')
+					{
+						if (!m_vScrollbar)
+						{
+							m_vScrollbar = createScrollbar(Scrollbar.ORIENTATION_VERTICAL);
+						}
+						else
+						{
+							m_vScrollbar.setVisibility(true);
+						}
+					}
+
+					if (m_currentStyles.overflowX == 'scroll')
+					{
+						if (!m_hScrollbar)
+						{
+							m_hScrollbar = createScrollbar(Scrollbar.ORIENTATION_HORIZONTAL);
+						}
+						else
+						{
+							m_hScrollbar.setVisibility(true);
+						}
+					}
 					applyStyles();
 					if (m_currentStyles.width != oldWidth ||
 						m_currentStyles.height != oldHeight)
@@ -1217,6 +1237,7 @@
 					{
 	//					trace("w parentreflow needed in " +
 	//						m_elementType + "#"+m_cssId + "."+m_cssClasses);
+						//TODO: change this use parent.validateAfterChildren
 						m_skipNextValidation = true;
 						m_parentElement.forceRedraw();
 						return;
@@ -1233,7 +1254,8 @@
 					applyOutOfFlowChildPositions();
 				}
 			}
-			applyDepthSorting();
+			m_layoutManager.applyDepthSorting(
+				m_lowerContentDisplay, m_upperContentDisplay);
 		}
 		protected override function finishValidation() : void
 		{
@@ -1243,12 +1265,6 @@
 			m_specifiedDimensionsChanged = false;

 			m_stylesInvalidated = false;
-		}
-
-		protected function applyDepthSorting() : void
-		{
-			m_layoutManager.applyDepthSorting(
-				m_lowerContentDisplay, m_upperContentDisplay);
 		}

 		protected override function validateChildren() : void
@@ -1742,7 +1758,7 @@
 		 * If that fails, the method invokes setValueForKey to try to assign the value
 		 * by other means.
 		 */
-		protected function assignValueFromAttribute(
+		private function assignValueFromAttribute(
 			attribute : String, value : String) : void
 		{
 			var usedValue : * = resolveBindings(value);
@@ -1815,7 +1831,7 @@
 			}
 		}

-		protected function preprocessTextNode(node : XML) : void
+		private function preprocessTextNode(node : XML) : void
 		{
 			var textNodeTags : String = UIRendererFactory.TEXTNODE_TAGS;
 			if (textNodeTags.indexOf(node.localName() + ",") != -1)
@@ -2147,6 +2163,7 @@
 			scrollbar.cssClasses = orientation + "Scrollbar";
 			scrollbar.setStyle('position', 'absolute');
 			scrollbar.setStyle('autoHide', 'false');
+			//TODO: remove scrollbarWidth property
 			scrollbar.setStyle('width',
 				(m_currentStyles.scrollbarWidth || DEFAULT_SCROLLBAR_WIDTH) + 'px');
 			if (orientation == Scrollbar.ORIENTATION_HORIZONTAL)
@@ -2158,12 +2175,12 @@
 				scrollbar.addEventListener(Event.CHANGE,
 					this[orientation + 'Scrollbar_change']);
 			}
-			scrollbar.addEventListener(MouseEvent.CLICK, scrollbar_event);
+			scrollbar.addEventListener(MouseEvent.CLICK, scrollbar_click);
 			scrollbar.validateElement(true, true);
 			return scrollbar;
 		}

-		protected function scrollbar_event(event : Event) : void
+		protected function scrollbar_click(event : Event) : void
 		{
 			event.stopImmediatePropagation();
 			event.stopPropagation();


fix missing cast to uint when accessing array cells

--- src/aerys/minko/type/animation/timeline/ScalarTimeline.as
+++ src/aerys/minko/type/animation/timeline/ScalarTimeline.as
@@ -35,8 +35,8 @@
     			var timeCount	: uint 	= _timeTable.length;

     			// change value.
-    			var previousTime		: Number	= _timeTable[int(timeId - 1)];
-    			var nextTime			: Number	= _timeTable[timeId % timeCount];
+    			var previousTime		: Number	= _timeTable[uint(timeId - 1)];
+    			var nextTime			: Number	= _timeTable[uint(timeId % timeCount)];
     			var interpolationRatio	: Number	= (time - previousTime) / (nextTime - previousTime);

     			if (t < 0.)


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1281292 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.components
 {


Minor lib fix

Minor lib fix

--- lib/openfl/display/Graphics.as
+++ lib/openfl/display/Graphics.as
@@ -4,7 +4,7 @@
 	import openfl.geom.Matrix;
 	import openfl.geom.Point;
 	import openfl.geom.Rectangle;
-	import openfl.Vector;
+	// import openfl.Vector;

 	/**


fixed compile bug for "function()(1,2)"

fixed compile bug for "function()(1,2)"

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -1461,8 +1461,8 @@
 				}

 				var compiledCall:CompiledFunctionCall = compiledToken as CompiledFunctionCall;
-				// if there is a compiled token to the left, this is a function call (unless the token is a call to operator ';')
-				if (leftBracket == '(' && compiledToken && !(compiledCall && compiledCall.evaluatedMethod == operators[';']))
+				// if there is a compiled token to the left, this is a function call (unless the token is a function header or is a call to operator ';')
+				if (leftBracket == '(' && compiledToken && !isFunctionHeader(compiledToken) && !(compiledCall && compiledCall.evaluatedMethod == operators[';']))
 				{
 					if (open >= 2)
 					{
@@ -1491,6 +1491,9 @@
 				if (leftBracket == '(' && statements.hasOwnProperty(token) && statements[token])
 					separator = '('; // statement params
 				tokens.splice(open, 2, compileOperator(separator, compiledParams));
+
+				if (token === FUNCTION && leftBracket == '(')
+					tokens.splice(open - 1, 2, compileFunctionHeader(FUNCTION, tokens[open]));
 			}
 		}


organize imports

organize imports

Change-Id: I40bef4e4e6ab72d9feabf9d2a0f03f1a9eb3ad56

--- WeaveCore/src/weave/core/ErrorManager.as
+++ WeaveCore/src/weave/core/ErrorManager.as
@@ -19,19 +19,17 @@

 package weave.core
 {
-	import flash.debugger.enterDebugger;
 	import flash.events.ErrorEvent;
 	import flash.events.IOErrorEvent;
 	import flash.events.SecurityErrorEvent;
 	import flash.system.Capabilities;

 	import mx.events.DynamicEvent;
-	import mx.messaging.messages.ErrorMessage;
 	import mx.rpc.Fault;
 	import mx.rpc.events.FaultEvent;

+	import weave.api.getCallbackCollection;
 	import weave.api.core.IErrorManager;
-	import weave.api.getCallbackCollection;
 	import weave.compiler.StandardLib;
 	import weave.utils.DebugUtils;


fixed null pointer error and added error message

--- WeaveCore/src/weave/core/LibraryUtils.as
+++ WeaveCore/src/weave/core/LibraryUtils.as
@@ -134,6 +134,7 @@
 import mx.rpc.events.ResultEvent;

 import weave.api.core.IDisposableObject;
+import weave.compiler.StandardLib;
 import weave.core.ClassUtils;
 import weave.utils.AsyncSort;

@@ -309,6 +310,11 @@
 				{
 					// initialize the class
 					var classDef:Class = ClassUtils.getClassDefinition(classQName);
+					if (!classDef)
+					{
+						trace(StandardLib.substitute('When loading library "{0}", unable to get class definition "{1}"', _url, classQName));
+						continue;
+					}

 					// register this class as an implementation of every interface it implements.
 					var classInfo:Object = DescribeType.getInfo(classDef, DescribeType.INCLUDE_TRAITS | DescribeType.INCLUDE_INTERFACES | DescribeType.USE_ITRAITS);


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1252031 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation_spark/src/spark/automation/codec/SparkDropDownListBaseSelectedItemCodec.as
+++ frameworks/projects/automation_spark/src/spark/automation/codec/SparkDropDownListBaseSelectedItemCodec.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.automation.codec
 {


greatly improve event dispatcher

greatly improve event dispatcher

--- src/org/mangui/hls/HLS.as
+++ src/org/mangui/hls/HLS.as
@@ -71,8 +71,13 @@
                 }
                 _hlsNetStream.close();
             }
-            return super.dispatchEvent(event);
-        };
+
+            if (hasEventListener(event.type)) {
+                return super.dispatchEvent(event);
+            }
+
+            return false;
+        }

         private function _levelSwitchHandler(event : HLSEvent) : void {
             _level = event.level;


Stop polling interval once impression or unmeasurable event has been dispatched.

Polling the beacons adds can affect video performance and is unnecessary once the ad has been determined to be viewable or unmeasurable.

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -612,12 +612,14 @@
 		private function raiseImpression(ovvData:*):void
 		{
 			dispatchEvent(new OVVEvent(OVVEvent.OVVImpression, ovvData));
+			_intervalTimer.removeEventListener(TimerEvent.TIMER, onIntervalCheck);
 			_impressionEventRaised = true;
 		}

 		private function raiseImpressionUnmeasurable(ovvData:*):void
 		{
 			dispatchEvent(new OVVEvent(OVVEvent.OVVImpressionUnmeasurable, ovvData));
+			_intervalTimer.removeEventListener(TimerEvent.TIMER, onIntervalCheck);
 			_impressionUnmeasurableEventRaised = true;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17330
Author:   chiedozi@adobe.com
Date:     2010-08-16T17:36:59.538425Z

Log Message:
-----------
Removed the sections functionality from ViewNavigator and refactored that logic into TabbedViewNavigator.  Updated dependent performance tests and components.
Introduced MobileApplicationBase and TabbedMobileApplication do support the tabbed use case for mobile.
Deleted SliderSkin from the framework.  All mobile skins now extend MobileSkin.

QE notes:
Doc notes:
Bugs:
Reviewer: Glenn and Ryan
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/PersistenceManager.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as" copyfrom-rev="17260" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/IPersistenceManager.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/IViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SliderSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1265732 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as
@@ -4,8 +4,9 @@
 import flash.display.Graphics;

 import spark.components.Button;
+import spark.skins.MobileSkin;

-public class VScrollBarThumbSkin extends SliderSkin {
+public class VScrollBarThumbSkin extends MobileSkin {

     public function VScrollBarThumbSkin()
     {


Stop updating the ArcBallController once inertia has converged.

--- src/aerys/minko/scene/controller/camera/ArcBallController.as
+++ src/aerys/minko/scene/controller/camera/ArcBallController.as
@@ -263,11 +263,22 @@
 			if (_newPitch > Math.PI - EPSILON)
 				_newPitch = Math.PI - EPSILON;
 		}
+
+		private function inertiaConverged() : Boolean
+		{
+			var distanceDiff	: Number = _newDistance - _distance;
+			var pitchDiff		: Number = _newPitch - _pitch;
+			var yawDiff			: Number = _newYaw - _yaw;
+
+			return distanceDiff > -EPSILON && distanceDiff < EPSILON &&
+				pitchDiff > -EPSILON && pitchDiff < EPSILON &&
+				yawDiff > -EPSILON && yawDiff < EPSILON;
+		}

 		private function updateTargets(time : Number = 1) : void
 		{
 			var enableInertia	: Boolean	= (_inertia != 1. && _interpolationSpeed != 1.);
-			if (enableInertia || (_update && _enabled))
+			if ((enableInertia && !inertiaConverged()) || (_update && _enabled))
 			{
 				clampValues();


Check the right things in our Preconditions.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5720 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/presents/util/SafeSubscriber.as
+++ src/as/com/threerings/presents/util/SafeSubscriber.as
@@ -50,8 +50,11 @@
         if (oid <= 0) {
             throw new ArgumentError("Invalid oid provided to safesub [oid=" + oid + "]");
         }
-        if (subscriber == null) {
-            throw new ArgumentError("Null subscriber provided to safesub [oid=" + oid + "]");
+        if (onAvailable == null) {
+            throw new ArgumentError("Null onAvailable provided to safesub [oid=" + oid + "]");
+        }
+        if (onFailure == null) {
+            throw new ArgumentError("Null onFailure provided to safesub [oid=" + oid + "]");
         }

         _oid = oid;


Issue #62: Fix typo in HeaderControllerModel result tag migration.

--- src/modules/HeaderController/HeaderControllerModel.as
+++ src/modules/HeaderController/HeaderControllerModel.as
@@ -343,18 +343,18 @@
         }
         if (searchResultTitle || searchResultDescription)
         {
-            var resultsXML:XML = <results/>;
+            var resultXML:XML = <result/>;

             if (searchResultTitle)
             {
-                resultsXML.appendChild(<title>{searchResultTitle}</title>);
+                resultXML.appendChild(<title>{searchResultTitle}</title>);
             }
             if (searchResultDescription)
             {
-                resultsXML.appendChild(<description>{searchResultDescription}</description>);
-            }
-
-            geocoderXML.appendChild(resultsXML);
+                resultXML.appendChild(<description>{searchResultDescription}</description>);
+            }
+
+            geocoderXML.appendChild(resultXML);
         }

         var labelsXML:XML = getLabelsXML();


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1290495 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/olap/CubeNode.as
+++ frameworks/projects/advancedgrids/src/mx/olap/CubeNode.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1290494 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/olap/CubeNode.as
+++ frameworks/projects/advancedgrids/src/mx/olap/CubeNode.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1259021 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/ClassFactory.as
+++ frameworks/projects/framework/src/mx/core/ClassFactory.as
@@ -0,0 +1,161 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+/**
+ *  A ClassFactory instance is a "factory object" which Flex uses
+ *  to generate instances of another class, each with identical properties.
+ *
+ *
You specify a generator class when you construct
+ *  the factory object.
+ *  Then you set the properties property on the factory object.
+ *  Flex uses the factory object to generate instances by calling
+ *  the factory object's newInstance() method.

+ *
+ *
The newInstance() method creates a new instance
+ *  of the generator class, and sets the properties specified
+ *  by properties in the new instance.
+ *  If you need to further customize the generated instances,
+ *  you can override the newInstance() method.

+ *
+ *
The ClassFactory class implements the IFactory interface.
+ *  Therefore it lets you create objects that can be assigned to properties
+ *  of type IFactory, such as the itemRenderer property of a List control
+ *  or the itemEditor property of a DataGrid control.

+ *
+ *
For example, suppose you write an item renderer class named
+ *  ProductRenderer containing
+ *  a showProductImage property which can be true
+ *  or false.
+ *  If you want to make a List control use this renderer, and have each renderer
+ *  instance display a product image, you would write the following code:

+ *
+ *

+ *  var productRenderer:ClassFactory = new ClassFactory(ProductRenderer);
+ *  productRenderer.properties = { showProductImage: true };
+ *  myList.itemRenderer = productRenderer;

+ *
+ *
The List control calls the newInstance() method on the
+ *  itemRenderer to create individual instances of ProductRenderer,
+ *  each with showProductImage property set to true.
+ *  If you want a different List control to omit the product images, you use
+ *  the ProductRenderer class to create another ClassFactory
+ *  with the properties property set to
+ *  { showProductImage: false }.

+ *
+ *
Using the properties property to configure the instances
+ *  can be powerful, since it allows a single generator class to be used
+ *  in different ways.
+ *  However, it is very common to create non-configurable generator classes
+ *  which require no properties to be set.
+ *  For this reason, MXML lets you use the following syntax:

+ *
+ *

+ *  <mx:List id="myList" itemRenderer="ProductRenderer">

+ *
+ *
The MXML compiler automatically creates the ClassFactory instance
+ *  for you.

+ *
+ *  @see mx.core.IFactory
+ *  @see mx.controls.List
+ */
+public class ClassFactory implements IFactory
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param generator The Class that the newInstance() method uses
+	 *  to generate objects from this factory object.
+     */
+    public function ClassFactory(generator:Class = null)
+    {
+		super();
+
+    	this.generator = generator;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  generator
+	//----------------------------------
+
+    /**
+     *  The Class that the newInstance() method uses
+	 *  to generate objects from this factory object.
+     */
+    public var generator:Class;
+
+	//----------------------------------
+	//  properties
+	//----------------------------------
+
+	/**
+	 *	An Object whose name/value pairs specify the properties to be set
+	 *  on each object generated by the newInstance() method.
+	 *
+	 *
For example, if you set properties to
+	 *  { text: "Hello", width: 100 }, then every instance
+	 *  of the generator class that is generated by calling
+	 *  newInstance() will have its text set to
+	 *  "Hello" and its width set to
+	 *  100.

+	 *
+	 *  @default null
+	 */
+	public var properties:Object = null;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Creates a new instance of the generator class,
+	 *  with the properties specified by properties.
+	 *
+	 *
This method implements the newInstance() method
+	 *  of the IFactory interface.

+	 *
+	 *  @return The new instance that was created.
+	 */
+	public function newInstance():*
+	{
+		var instance:Object = new generator();
+
+        if (properties != null)
+        {
+        	for (var p:String in properties)
+			{
+        		instance[p] = properties[p];
+			}
+       	}
+
+       	return instance;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1268396 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/controls/PopUpMenuButton.as
+++ frameworks/projects/mx/src/mx/controls/PopUpMenuButton.as
@@ -0,0 +1,704 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls
+{
+
+import flash.events.Event;
+import flash.events.MouseEvent;
+import mx.collections.ICollectionView;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.controls.menuClasses.IMenuDataDescriptor;
+import mx.controls.treeClasses.DefaultDataDescriptor;
+import mx.core.IUIComponent;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.events.ListEvent;
+import mx.events.MenuEvent;
+import mx.managers.PopUpManager;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched when a user selects an item from the pop-up menu.
+ *
+ *  @eventType mx.events.MenuEvent.ITEM_CLICK
+ */
+[Event(name="itemClick", type="mx.events.MenuEvent")]
+
+/**
+ *  The name of a CSS style declaration used by the dropdown menu.
+ *  This property allows you to control the appearance of the dropdown menu.
+ *  The default value sets the fontWeight to normal and
+ *  the textAlign to left.
+ *
+ *  @default "popUpMenu"
+ */
+[Style(name="popUpStyleName", type="String", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="toggle", kind="property")]
+[Exclude(name="selectedDisabledIcon", kind="style")]
+[Exclude(name="selectedDisabledSkin", kind="style")]
+[Exclude(name="selectedDownIcon", kind="style")]
+[Exclude(name="selectedDownSkin", kind="style")]
+[Exclude(name="selectedOverIcon", kind="style")]
+[Exclude(name="selectedOverSkin", kind="style")]
+[Exclude(name="selectedUpIcon", kind="style")]
+[Exclude(name="selectedUpSkin", kind="style")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+//[IconFile("PopUpMenuButton.png")]
+
+[RequiresDataBinding(true)]
+
+/**
+ *  The PopUpMenuButton control creates a PopUpButton control with a main
+ *  sub-button and a secondary sub-button.
+ *  Clicking on the secondary (right) sub-button drops down a menu that
+ *  can be popluated through a dataProvider property.
+ *  Unlike the Menu and MenuBar controls, the PopUpMenuButton control
+ *  supports only a single-level menu. This means that the menu cannot contain
+ *  cascading submenus.
+ *
+ *
The main sub-button of the PopUpMenuButton control can have a
+ *     text label, an icon, or both on its face.
+ *     When a user selects an item from the drop-down menu or clicks
+ *     the main button of the PopUpMenuButton control, the control
+ *     dispatches an itemClick event.
+ *     When a user clicks the main button of the
+ *     control, the control also dispatches a click event.
+ *     You can customize the look of a PopUpMenuButton control.

+ *
+ *
The PopUpMenuButton control has the following sizing
+ *     characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Sufficient to accommodate the label and any icon on
+ *               the main button, and the icon on the pop-up button.
+ *               The control does not reserve space for the menu.
+ *

+ *

+ *           Minimum size
+ *           0 pixels.
+ *

+ *

+ *           Maximum size
+ *           10000 by 10000.
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:PopUpMenuButton> tag inherits all of the tag
+ *  attributes of its superclass, and adds the following tag attributes:

+ *
+ *

+ *  <mx:PopUpMenuButton
+ *    Properties
+ *    dataDescriptor="instance of DefaultDataDescriptor"
+ *    dataProvider="undefined"
+ *    labelField="null"
+ *    labelFunction="undefined"
+ *    showRoot="false|true"
+ *
+ *    Event
+ *    change=No default
+ *  />
+ *

+ *
+ *  @includeExample examples/PopUpButtonMenuExample.mxml
+ *
+ *  @see mx.controls.Menu
+ *  @see mx.controls.MenuBar
+ *
+ *  @tiptext Provides ability to pop up a menu and act as a button
+ *  @helpid 3441
+ */
+public class PopUpMenuButton extends PopUpButton
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function PopUpMenuButton()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var dataProviderChanged:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var labelSet:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var popUpMenu:Menu = null;
+
+    /**
+     *  @private
+     */
+    private var selectedIndex:int = -1;
+
+    /**
+     *  @private
+     */
+    private var itemRenderer:IListItemRenderer = null;
+
+    /**
+     *  @private
+     */
+    private var explicitIcon:Class = null;
+
+    /**
+     *  @private
+     */
+    private var menuSelectedStyle:Boolean = false;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  A reference to the pop-up Menu object.
+     *
+     *
This property is read-only, and setting it has no effect.
+     *  Set the dataProvider property, instead.
+     *  (The write-only indicator appears in the syntax summary because the
+     *  property in the superclass is read-write and this class overrides
+     *  the setter with an empty implementation.)

+     */
+    override public function set popUp(value:IUIComponent):void
+    {
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    // dataDescriptor
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the dataDescriptor property.
+     */
+    private var _dataDescriptor:IMenuDataDescriptor =
+                                        new DefaultDataDescriptor();
+
+    /**
+     *  The data descriptor accesses and manipulates data in the data provider.
+     *
When you specify this property as an attribute in MXML, you must
+     *  use a reference to the data descriptor, not the string name of the
+     *  descriptor. Use the following format for the property:

+     *
+     *
<mx:PopUpMenuButton id="menubar" dataDescriptor="{new MyCustomDataDescriptor()}"/>

+     *
+     *
Alternatively, you can specify the property in MXML as a nested
+     *  subtag, as the following example shows:

+     *
+     *
<mx:PopUpMenuButton>
+     *  <mx:dataDescriptor>
+     *     <myCustomDataDescriptor>
+     *  </mx:dataDescriptor>
+     *  ...

+     *
+     *
The default value is an internal instance of the
+     *  DefaultDataDescriptor class.

+     */
+    public function get dataDescriptor():IMenuDataDescriptor
+    {
+        return IMenuDataDescriptor(_dataDescriptor);
+    }
+
+    /**
+     *  @private
+     */
+    public function set dataDescriptor(value:IMenuDataDescriptor):void
+    {
+        _dataDescriptor = value;
+    }
+
+    //--------------------------------------------------------------------------
+    // dataProvider
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for dataProvider property.
+     */
+    private var _dataProvider:Object = null;
+
+    [Bindable("collectionChange")]
+    [Inspectable(category="Data", defaultValue="null")]
+
+    /**
+     *  DataProvider for popUpMenu.
+     *
+     *  @default null
+     */
+    public function get dataProvider():Object
+    {
+        if (popUpMenu)
+            return Menu(popUpMenu).dataProvider;
+        return null;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dataProvider(value:Object):void
+    {
+        _dataProvider = value;
+        dataProviderChanged = true;
+
+        // In general we shouldn't create the popUp's until
+        // they are actually popped up. However, in this case
+        // the initial label, icon and action on the main button's
+        // click are to be borrowed from the popped menu.
+        // Moreover since PopUpMenuButton doesn't expose selectedIndex
+        // selectedItem etc., one should be able to access them
+        // prior to popping up the menu.
+        getPopUp();
+
+        invalidateProperties();
+    }
+
+    //--------------------------------------------------------------------------
+    //  label
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the label property.
+     */
+    private var _label:String = "";
+
+    [Inspectable(category="General", defaultValue="")]
+
+    /**
+     *  @private
+     */
+    override public function set label(value:String):void
+    {
+        // labelSet is different from labelChanged as it is never unset.
+        labelSet = true;
+        _label = value;
+        super.label = _label;
+    }
+
+    //--------------------------------------------------------------------------
+    //  labelField
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the labelField property.
+     */
+    private var _labelField:String = "label";
+
+    [Bindable("labelFieldChanged")]
+    [Inspectable(category="Data", defaultValue="label")]
+
+    /**
+     *  Name of the field in the dataProvider Array that contains the text to
+     *  show for each menu item.
+     *  The labelFunction property, if set, overrides this property.
+     *  If the data provider is an Array of Strings, Flex uses each String
+     *  value as the label.
+     *  If the data provider is an E4X XML object, you must set this property
+     *  explicitly; for example, use @label to specify the label attribute.
+     *
+     *  @default "label"
+     */
+    public function get labelField():String
+    {
+        return _labelField;
+    }
+
+    /**
+     *  @private
+     */
+    public function set labelField(value:String):void
+    {
+        if (_labelField != value)
+        {
+            _labelField = value;
+
+            if (popUpMenu)
+                popUpMenu.labelField = _labelField;
+
+            dispatchEvent(new Event("labelFieldChanged"));
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //  labelFunction
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the labelFunction property.
+     */
+    private var _labelFunction:Function;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  A function that determines the text to display for each menu item.
+     *  If you omit this property, Flex uses the contents of the field or attribute
+     *  determined by the labelField property.
+     *  If you specify this property, Flex ignores any labelField
+     *  property value.
+     *
+     *
If you specify this property, the label function must find the
+     *  appropriate field or fields and return a displayable string.
+     *  The labelFunction property is good for handling formatting
+     *  and localization.

+     *
+     *
The label function must take a single argument which is the item
+     *  in the dataProvider and return a String.

+     *
+     *

+     *  labelFunction(item:Object):String
+     *

+     *
+     *  @default null
+     */
+    public function get labelFunction():Function
+    {
+        return _labelFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set labelFunction(value:Function):void
+    {
+        if (_labelFunction != value)
+        {
+            _labelFunction = value;
+
+            if (popUpMenu)
+                popUpMenu.labelFunction = _labelFunction;
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //  showRoot
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the showRoot property.
+     */
+    mx_internal var _showRoot:Boolean = true;
+
+    /**
+     *  @private
+     */
+    private var _showRootChanged:Boolean = false;
+
+    [Inspectable(category="Data", enumeration="true,false", defaultValue="true")]
+
+    /**
+     *  Specifies whether to display the top-level node or nodes of the data provider.
+     *
+     *  If this is set to false, the control displays
+     *  only descendants of the first top-level node.
+     *  Any other top-level nodes are ignored.
+     *  You normally set this property to false for
+     *  E4X format XML data providers, where the top-level node is the document
+     *  object.
+     *
+     *  @default true
+     */
+    public function get showRoot():Boolean
+    {
+        return _showRoot;
+    }
+
+    /**
+     *  @private
+     */
+    public function set showRoot(value:Boolean):void
+    {
+        if (_showRoot != value)
+        {
+            _showRoot = value;
+            _showRootChanged = true;
+
+            invalidateProperties();
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        if (_showRootChanged)
+        {
+            _showRootChanged = false;
+            if (popUpMenu != null)
+                popUpMenu.showRoot = _showRoot;
+            invalidateDisplayList();
+        }
+
+        if (popUpMenu && dataProviderChanged)
+        {
+            popUpMenu.dataProvider = _dataProvider;
+            popUpMenu.validateNow();
+
+            if (dataProvider.length)
+            {
+                selectedIndex = 0;
+
+                var item:* = popUpMenu.dataProvider[selectedIndex];
+
+                // Set button label.
+                if (labelSet)
+                    super.label = _label;
+                else
+                    super.label = popUpMenu.itemToLabel(item);
+
+                // Set button icon,
+                setSafeIcon(popUpMenu.itemToIcon(item));
+            }
+            else
+            {
+                selectedIndex = -1;
+
+                if (labelSet)
+                    super.label = _label;
+                else
+                    super.label = "";
+
+                clearStyle("icon");
+            }
+
+            dataProviderChanged = false;
+        }
+
+        super.commitProperties();
+    }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+        //style is actually set here already.
+        if (styleProp == "icon" || styleProp == null || styleProp == "styleName" )
+        {
+            if (menuSelectedStyle)
+            {
+                if (explicitIcon)
+                {
+                    menuSelectedStyle = false;
+                    setStyle("icon", explicitIcon);
+                }
+            }
+            else
+            {
+                explicitIcon = getStyle("icon");
+            }
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: PopUpButton
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override mx_internal function getPopUp():IUIComponent
+    {
+        super.getPopUp();
+
+        if (!popUpMenu || !super.popUp)
+        {
+            popUpMenu = new Menu();
+            popUpMenu.labelField = _labelField;
+            popUpMenu.labelFunction = _labelFunction;
+            popUpMenu.showRoot = _showRoot;
+            popUpMenu.dataDescriptor = _dataDescriptor;
+            popUpMenu.dataProvider = _dataProvider;
+            popUpMenu.addEventListener(MenuEvent.ITEM_CLICK, menuChangeHandler);
+            popUpMenu.addEventListener(FlexEvent.VALUE_COMMIT,
+                                       menuValueCommitHandler);
+            super.popUp = popUpMenu;
+            // Add PopUp to PopUpManager here so that
+            // commitProperties of Menu gets called even
+            // before the PopUp is opened. This is
+            // necessary to get the initial label and dp.
+            PopUpManager.addPopUp(super.popUp, this, false);
+            super.popUp.owner = this;
+        }
+
+        return popUpMenu;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //   private helper methods
+    //
+    //--------------------------------------------------------------------------
+
+     /**
+     *  @private
+     */
+     private function setSafeIcon(iconClass:Class):void
+     {
+          menuSelectedStyle = true;
+          setStyle("icon", iconClass);
+          menuSelectedStyle = false;
+     }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: Button
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function clickHandler(event:MouseEvent):void
+    {
+        super.clickHandler(event);
+
+        if (!overArrowButton(event))
+            menuClickHandler(event);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private function menuClickHandler(event:MouseEvent):void
+    {
+        if (selectedIndex >= 0)
+        {
+            var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
+            menuEvent.menu = popUpMenu;
+            menuEvent.menu.selectedIndex = selectedIndex;
+            menuEvent.item =  popUpMenu.dataProvider[selectedIndex];
+            menuEvent.itemRenderer = itemRenderer;
+            menuEvent.index = selectedIndex;
+            menuEvent.label =
+                popUpMenu.itemToLabel(popUpMenu.dataProvider[selectedIndex]);
+            dispatchEvent(menuEvent);
+
+            // Reset selection after the change event is dispatched
+            // just like in a menu.
+            popUpMenu.selectedIndex = -1;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function menuValueCommitHandler(event:FlexEvent):void
+    {
+        // Change label/icon if selectedIndex is changed programatically.
+        if (popUpMenu.selectedIndex >= 0)
+        {
+            selectedIndex = popUpMenu.selectedIndex;
+            if (labelSet)
+                super.label = _label;
+            else
+                super.label = popUpMenu.itemToLabel(popUpMenu.dataProvider[selectedIndex]);
+            setSafeIcon(popUpMenu.itemToIcon(popUpMenu.dataProvider[selectedIndex]));
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function menuChangeHandler(event:MenuEvent):void
+    {
+        if (event.index >= 0)
+        {
+            var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
+
+            menuEvent.label = popUpMenu.itemToLabel(event.item);
+            if (labelSet)
+                super.label = _label;
+            else
+                super.label = popUpMenu.itemToLabel(event.item);
+            setSafeIcon(popUpMenu.itemToIcon(event.item));
+            menuEvent.menu = popUpMenu;
+            menuEvent.menu.selectedIndex = menuEvent.index =
+                selectedIndex = event.index;
+            menuEvent.item = event.item;
+            itemRenderer = menuEvent.itemRenderer =
+                event.itemRenderer;
+            dispatchEvent(menuEvent);
+        }
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285663 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package spark.primitives
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4793
Author:   egeorgie@adobe.com
Date:     2009-02-02T19:20:06.026883Z

Log Message:
-----------
Fix bug SDK-17734 Path with width and height set different than path data has incorrect bounds

Fix: When calculating the bounds position we should take into account the implicit scaling factor actualSize/naturalSize. Also did some refactoring, getting rid of the protected method calculateTopLeft.

QE Notes: None
Doc Notes: None
Bugs: SDK-17734
Reviewer: Ryan
tests: mustella gumbo/layout/GraphicElement

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285651 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -167,13 +167,25 @@
     /**
      *  @private
      */
-    override protected function computeTopLeft(topLeft:Point, width:Number, height:Number, m:Matrix):Point
+    override public function getLayoutBoundsX(postTransform:Boolean = true):Number
     {
-        var bbox:Rectangle = getBBox(width / 2, height / 2, m);
-        topLeft.x = bbox.x;
-        topLeft.y = bbox.y;
-        return topLeft;
+        var stroke:Number = -getStrokeExtents(postTransform).x * 0.5;
+        var m:Matrix = postTransform ? computeMatrix() : null;
+        if (!m)
+            return stroke + this.x;
+        return stroke + getBBox(width / 2, height / 2, m).x;
+    }
+
+    /**
+     *  @private
+     */
+    override public function getLayoutBoundsY(postTransform:Boolean = true):Number
+    {
+        var stroke:Number = - getStrokeExtents(postTransform).y * 0.5;
+        var m:Matrix = postTransform ? computeMatrix() : null;
+        if (!m)
+            return stroke + this.y;
+        return stroke + getBBox(width / 2, height / 2, m).y;
     }
 }
-
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7828
Author:   smgilson@adobe.com
Date:     2009-06-14T15:13:19.357669Z

Log Message:
-----------
Fix ASDoc comment

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/TextFlowUtil.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1287984 13f79535-47bb-0310-9956-ffa450edef68


Fixed compatibility issue with new Image class.

--- net/flashpunk/graphics/Text.as
+++ net/flashpunk/graphics/Text.as
@@ -40,7 +40,6 @@
 			if (!width) width = _field.textWidth + 4;
 			if (!height) height = _field.textHeight + 4;
 			_source = new BitmapData(width, height, true, 0);
-			_sourceRect = _source.rect;
 			super(_source);
 			updateBuffer();
 			this.x = x;
@@ -109,8 +108,6 @@
 		override public function get height():uint { return _height; }

 		// Text information.
-		/** @private */ private var _source:BitmapData;
-		/** @private */ private var _sourceRect:Rectangle;
 		/** @private */ private var _field:TextField = new TextField;
 		/** @private */ private var _width:uint;
 		/** @private */ private var _height:uint;


Bug fix : progress/complete callback for sending a video does not work.

--- actionscript/src/com/freshplanet/ane/GoogleCloudStorageUpload/GoogleCloudStorageUpload.as
+++ actionscript/src/com/freshplanet/ane/GoogleCloudStorageUpload/GoogleCloudStorageUpload.as
@@ -140,7 +140,7 @@
 				if (_callback != null)
 				{
 					_callback("FILE_UPLOAD_DONE", event.level);
-					_callback = null;
+					//_callback = null;
 				}
 			}
 			else if (event.code == "FILE_UPLOAD_ERROR")


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1267575 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/containers/Canvas.as
+++ frameworks/projects/mx/src/mx/containers/Canvas.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.containers
 {


added base FormItemPresenter

added base FormItemPresenter

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/AttributeFormItemPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/AttributeFormItemPresenter.as
@@ -1,40 +1,44 @@
 package org.openforis.collect.presenter
 {
 	import flash.events.Event;
+	import flash.events.FocusEvent;
+	import flash.events.MouseEvent;

 	import mx.binding.utils.ChangeWatcher;
+	import mx.collections.ArrayCollection;
 	import mx.collections.IList;
+	import mx.rpc.AsyncResponder;
+	import mx.rpc.events.ResultEvent;

+	import org.openforis.collect.client.ClientFactory;
 	import org.openforis.collect.event.ApplicationEvent;
 	import org.openforis.collect.model.proxy.AttributeProxy;
+	import org.openforis.collect.model.proxy.EntityProxy;
+	import org.openforis.collect.remoting.service.UpdateRequest;
+	import org.openforis.collect.remoting.service.UpdateRequest$Method;
 	import org.openforis.collect.ui.component.detail.AttributeFormItem;
+	import org.openforis.collect.ui.component.detail.MultipleAttributeFormItem;
+	import org.openforis.collect.util.CollectionUtil;
+	import org.openforis.collect.util.UIUtil;

 	/**
 	 *
 	 * @author S. Ricci
 	 *
 	 */
-	public class AttributeFormItemPresenter extends AbstractPresenter {
-
-		protected var _view:AttributeFormItem;
+	public class AttributeFormItemPresenter extends FormItemPresenter {

 		public function AttributeFormItemPresenter(view:AttributeFormItem) {
-			_view = view;
-
-			super();
-
-			updateView();
+			super(view);
 		}

 		override internal function initEventListeners():void {
 			super.initEventListeners();

-			eventDispatcher.addEventListener(ApplicationEvent.MODEL_CHANGED, modelChangedHandler);
-			ChangeWatcher.watch(_view, "parentEntity", parentEntityChangeHandler);
 			ChangeWatcher.watch(_view, "attribute", attributeChangeHandler);
 		}

-		protected function parentEntityChangeHandler(event:Event):void {
+		override protected function parentEntityChangeHandler(event:Event):void {
 			assignAttribute();
 		}

@@ -42,31 +46,35 @@
 			updateView();
 		}

-		protected function modelChangedHandler(event:ApplicationEvent):void {
-			if(_view.attributes == null && _view.attribute == null) {
+		override protected function modelChangedHandler(event:ApplicationEvent):void {
+			if(view.attributes == null && view.attribute == null) {
 				assignAttribute();
 			}
 		}

+		private function get view():AttributeFormItem {
+			return AttributeFormItem(_view);
+		}
+
+		override protected function updateView():void {
+			super.updateView();
+		}
+
 		/**
 		 * get the attribute (or attributes) from the parentEntity
 		 */
 		protected function assignAttribute():void {
-			if (_view.parentEntity != null && _view.attributeDefinition != null) {
-				var name:String = _view.attributeDefinition.name;
-				if (_view.attributeDefinition.multiple) {
-					var attributes:IList = _view.parentEntity.getChildren(name);
-					_view.attributes = attributes;
+			if (view.parentEntity != null && view.attributeDefinition != null) {
+				var name:String = view.attributeDefinition.name;
+				if (view.attributeDefinition.multiple) {
+					var attributes:IList = view.parentEntity.getChildren(name);
+					view.attributes = attributes;
 				} else {
-					var attribute:AttributeProxy = _view.parentEntity.getSingleAttribute(name);
-					_view.attribute = attribute;
+					var attribute:AttributeProxy = view.parentEntity.getSingleAttribute(name);
+					view.attribute = attribute;
 				}
 			}
 		}

-		protected function updateView():void {
-
-		}
-
 	}
 }


HLSNetStream: when seeking in IDLE playback state, move to PAUSED_BUFFERING playback state (instead of PLAYING_BUFFERING) related to #204 related to #326

--- src/org/mangui/hls/stream/HLSNetStream.as
+++ src/org/mangui/hls/stream/HLSNetStream.as
@@ -27,11 +27,19 @@
      *
      * play state transition :
      * 				FROM								TO								condition
-     *  HLSPlayStates.IDLE              	HLSPlayStates.PLAYING_BUFFERING     play()/play2()/seek() called
+     *  HLSPlayStates.IDLE              	HLSPlayStates.PLAYING_BUFFERING     idle => play()/play2() called
+     *  HLSPlayStates.IDLE                  HLSPlayStates.PAUSED_BUFFERING      idle => seek() called
      *  HLSPlayStates.PLAYING_BUFFERING  	HLSPlayStates.PLAYING  				buflen > minBufferLength
      *  HLSPlayStates.PAUSED_BUFFERING  	HLSPlayStates.PAUSED  				buflen > minBufferLength
      *  HLSPlayStates.PLAYING  				HLSPlayStates.PLAYING_BUFFERING  	buflen < lowBufferLength
      *  HLSPlayStates.PAUSED  				HLSPlayStates.PAUSED_BUFFERING  	buflen < lowBufferLength
+     *
+     * seek state transition :
+     *
+     *              FROM                                TO                              condition
+     *  HLSSeekStates.IDLE/SEEKED           HLSSeekStates.SEEKING     play()/play2()/seek() called
+     *  HLSSeekStates.SEEKING               HLSSeekStates.SEEKED      upon first FLV tag appending after seek
+     *  HLSSeekStates.SEEKED                HLSSeekStates.IDLE        upon playback complete or stop() called
      */
     public class HLSNetStream extends NetStream {
         /** Reference to the framework controller. **/
@@ -329,16 +337,16 @@
             }
             _streamBuffer.seek(position);
             _setSeekState(HLSSeekStates.SEEKING);
-            /* if HLS was in paused state before seeking,
+            /* if HLS playback state was in PAUSED or IDLE state before seeking,
              * switch to paused buffering state
              * otherwise, switch to playing buffering state
              */
             switch(_playbackState) {
+                case HLSPlayStates.IDLE:
                 case HLSPlayStates.PAUSED:
                 case HLSPlayStates.PAUSED_BUFFERING:
                     _setPlaybackState(HLSPlayStates.PAUSED_BUFFERING);
                     break;
-                case HLSPlayStates.IDLE:
                 case HLSPlayStates.PLAYING:
                 case HLSPlayStates.PLAYING_BUFFERING:
                     _setPlaybackState(HLSPlayStates.PLAYING_BUFFERING);


Bug 568520 - broken cross references in documentation(p=djacowit)

--- extensions/Sampler.as
+++ extensions/Sampler.as
@@ -198,7 +198,6 @@
          * @playerversion Flash 9.0.115.0
          * @langversion 3.0
          * @keyword DeleteObjectSample, DeleteObjectSample.id, id
-         * @see flash.sampler.NewObjectSample#id
          */
         public const id:Number;

@@ -207,7 +206,6 @@
          * @playerversion Flash 9.0.115.0
          * @langversion 3.0
          * @keyword DeleteObjectSample, DeleteObjectSample.size, size
-         * @see flash.sampler.NewObjectSample#id
          */
         public const size:Number;
     };
@@ -336,7 +334,7 @@
      * @playerversion Flash 9.0.115.0
      * @langversion 3.0
      * @keyword getMemberNames
-     * @see flash.utils#describeType()
+     * @see ../../flash/utils/package.html#describeType() flash.utils.describeType()
      * @see ../../statements.html#for_each..in for each..in
      *
      */


- bugfix: absolutely positioned elements were included in the calculation of their parents' intrinsic width

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@679 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/layoutmanagers/CSSBoxModelLayoutManager.as
+++ src/reprise/ui/layoutmanagers/CSSBoxModelLayoutManager.as
@@ -160,9 +160,13 @@
 						child.x = childStyle.marginLeft + elementStyle.paddingLeft;
 					}
 				}
-				widestChildWidth = Math.max(child.x +
-					child.outerWidth + childStyle.marginRight,
-					widestChildWidth);
+
+				if (child.positionInFlow || childStyle.float)
+				{
+					widestChildWidth = Math.max(child.x +
+						child.outerWidth + childStyle.marginRight,
+						widestChildWidth);
+				}

 				//apply vertical position including margin collapsing
 				if (child.positionInFlow)
@@ -250,7 +254,7 @@
 			elementStyle.intrinsicWidth =
 				Math.max(widestChildWidth - elementStyle.paddingLeft, 0);
 		}
-
+
 		public function applyAbsolutePositions(
 			element : UIComponent, children : Array) : void
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1252163 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRichEditableTextAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRichEditableTextAutomationImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


git-svn-id: https://openwms2005.svn.sourceforge.net/svnroot/openwms2005@1693 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/org.openwms.core/org.openwms.core.domain.as/src/main/flex/org/openwms/core/domain/values/PieceUnit.as
+++ org.openwms/trunk/org.openwms.core/org.openwms.core.domain.as/src/main/flex/org/openwms/core/domain/values/PieceUnit.as
@@ -23,11 +23,10 @@
     import org.granite.util.Enum;

     [Bindable]
-    [RemoteClass(alias = "org.openwms.core.domain.values.PieceUnit")]
+    [RemoteClass(alias="org.openwms.core.domain.values.PieceUnit")]
     public class PieceUnit extends Enum {

         public static const PC : PieceUnit = new PieceUnit("PC", _);
-
         public static const DOZ : PieceUnit = new PieceUnit("DOZ", _);

         function PieceUnit(value : String=null, restrictor : *=null) {
@@ -46,4 +45,4 @@
             return PieceUnit(PC.constantOf(name));
         }
     }
-}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1260208 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/effects/EffectManager.as
+++ frameworks/projects/framework/src/mx/effects/EffectManager.as
@@ -126,7 +126,7 @@
      */
     mx_internal static function get lastEffectCreated():Effect
     {
-        for( var item:* in weakKeys )
+        for (var item:* in weakKeys)
             return item;

         return null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261577 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/IDragManager.as
+++ frameworks/projects/framework/src/mx/managers/IDragManager.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261575 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/IDragManager.as
+++ frameworks/projects/framework/src/mx/managers/IDragManager.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.managers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1267643 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/containers/FormItemDirection.as
+++ frameworks/projects/mx/src/mx/containers/FormItemDirection.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 20174
Author:   klin@adobe.com
Date:     2011-02-07T19:37:57.204921Z

Log Message:
-----------
Remove [Inspectable] from splashScreenImage and related properties.

QE notes: No
Doc notes: No
Bugs: SDK-28942
Reviewer: Evtim
Tests run: cyclone server
Is noteworthy for integration: Yes

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1278244 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -703,8 +703,6 @@
     //  splashScreenImage
     //----------------------------------

-    [Inspectable(category="General")]
-
     /**
      *  The image class for the SplashScreen preloader.
      *  Typically you set this property to an embedded resource.
@@ -744,7 +742,7 @@
     //  splashScreenScaleMode
     //----------------------------------

-    [Inspectable(category="General", enumeration="none,letterbox,stretch,zoom", defaultValue="none")]
+    [Inspectable(enumeration="none,letterbox,stretch,zoom", defaultValue="none")]

     /**
      *  The splash screen image scale mode:
@@ -790,8 +788,6 @@
     //----------------------------------
     //  splashScreenMinimumDisplayTime
     //----------------------------------
-
-    [Inspectable(category="General")]

     /**
      *  Minimum amount of time, in milliseconds, to show the splash screen image.


Transferred from the Adobe Open Source Subversion Repository

Revision: 18635
Author:   aharui@adobe.com
Date:     2010-11-17T00:18:36.469040Z

Log Message:
-----------
Add estimatedSizes to the layout infrastructure to better deal with text reflow.
Add new events to layout infrastructure to deal with caching of size information

QE notes: New APIs and Interfaces
Doc notes: New APIs and interfaces
Bugs: SDK-27226, SDK-26155, SDK-25483, SDK-23621, SDK-27225, SDK-26993, SDK-25535, SDK-25521
Reviewer: Evtim
Tests run: checkintests mustella full run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/FormTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279885 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -21,10 +21,12 @@
 import flash.geom.Point;
 import flash.geom.Rectangle;

+import mx.core.FlexVersion;
 import mx.core.IFlexDisplayObject;
 import mx.core.IUIComponent;
 import mx.core.LayoutDirection;
 import mx.core.UIComponent;
+import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.managers.PopUpManager;
 import mx.styles.ISimpleStyleClient;
@@ -194,6 +196,8 @@
     //  displayPopUp
     //----------------------------------

+    private var displayPopUpChanged:Boolean;
+
     private var _displayPopUp:Boolean = false;

@@ -214,7 +218,12 @@
             return;

         _displayPopUp = value;
-        addOrRemovePopUp();
+
+        displayPopUpChanged = true;
+        // request validation of display list so we
+        // know our size before putting up the popup
+        // and sizing it
+        invalidateDisplayList();
     }

     /**
@@ -318,7 +327,9 @@
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
-        super.updateDisplayList(unscaledWidth, unscaledHeight);
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+        if (displayPopUpChanged)
+            addOrRemovePopUp();
         applyPopUpTransform(unscaledWidth, unscaledHeight);
     }

@@ -490,13 +501,20 @@
             popUpIsDisplayed = true;
             if (popUp is UIComponent && !popUpSizeCaptured)
             {
-                popUpWidth = UIComponent(popUp).explicitWidth;
-                popUpHeight = UIComponent(popUp).explicitHeight;
-                UIComponent(popUp).validateNow();
+				if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+				{
+					UIComponentGlobals.layoutManager.validateClient(UIComponent(popUp), true);
+					popUpWidth = UIComponent(popUp).getExplicitOrMeasuredWidth();
+					popUpHeight = UIComponent(popUp).getExplicitOrMeasuredHeight();
+				}
+				else
+				{
+	                popUpWidth = UIComponent(popUp).explicitWidth;
+	                popUpHeight = UIComponent(popUp).explicitHeight;
+	                UIComponent(popUp).validateNow();
+				}
                 popUpSizeCaptured = true;
             }
-
-            applyPopUpTransform(width, height);
         }
         else if (DisplayObject(popUp).parent != null && displayPopUp == false)
         {
@@ -578,14 +596,17 @@
         if (popUp is UIComponent)
         {
             if (popUpWidthMatchesAnchorWidth)
-                UIComponent(popUp).width = unscaledWidth;
-            else
+                UIComponent(popUp).width = popUpWidth = unscaledWidth;
+			else if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_5)
                 UIComponent(popUp).explicitWidth = popUpWidth;

             if (popUpHeightMatchesAnchorHeight)
-                UIComponent(popUp).height = unscaledHeight;
-            else
+                UIComponent(popUp).height = popUpHeight = unscaledHeight;
+			else if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_5)
                 UIComponent(popUp).explicitHeight = popUpHeight;
+            // validate now because the popup is higher in the nest level than the
+            // PopUpAnchor
+            UIComponent(popUp).validateNow();
         }
         else
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 14075
Author:   jszeto@adobe.com
Date:     2010-02-09T23:18:57.409693Z

Log Message:
-----------
Merge revision 14051

Original change log:

PopUpAnchor bug fix for Marshall Plan

http://bugs.adobe.com/jira/browse/SDK-25348 - Marshall Plan rendering error in AIR

The fix is to replace PopUpAnchor.getPopUpMatrix() with MatrixUtil.getConcatenatedComputedMatrix(this).

The PopUpAnchor needs to place the popUp relative to the SystemManager that is attaching the popUp. MatrixUtil.getConcatenatedComputedMatrix will stop at the correct displayList parent regardless if it is a trusted or untrusted sub app.

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279880 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -355,7 +355,7 @@
     protected function calculatePopUpPosition():Point
     {
         // This implementation doesn't handle rotation
-        var matrix:Matrix = getPopUpMatrix();
+        var matrix:Matrix = MatrixUtil.getConcatenatedComputedMatrix(this)

         var regPoint:Point = new Point();

@@ -501,26 +501,7 @@
         PopUpManager.removePopUp(popUp);
         popUpIsDisplayed = false;
     }
-
-    /**
-     *  @private Get the concatenated matrix from the PopUpAnchor to the popUp parent
-     */
-    private function getPopUpMatrix():Matrix
-    {
-        // Take the PopUpAnchor's concatenatedMatrix
-        // and subtract out the popUp parent's concatenatedMatrix
-        var matrix:Matrix = systemManager.getSandboxRoot().transform.concatenatedMatrix;
-
-        if (matrix)
-        {
-            matrix.invert();
-            //matrix.concat(MatrixUtil.getConcatenatedMatrix(this));
-            matrix.concat(MatrixUtil.getConcatenatedComputedMatrix(this));
-        }
-
-        return matrix;
-    }
-
+
     /**
      *  @private
      */
@@ -579,7 +560,7 @@
         if (!popUpIsDisplayed)
             return;

-        var m:Matrix = getPopUpMatrix();
+        var m:Matrix = MatrixUtil.getConcatenatedComputedMatrix(this);

         // Set the dimensions explicitly because UIComponents always set themselves to their
         // measured / explicit dimensions if they are parented by the SystemManager.


Transferred from the Adobe Open Source Subversion Repository

Revision: 22190
Author:   egeorgie@adobe.com
Date:     2011-08-24T21:16:42.308482Z

Log Message:
-----------
SDK-31167 ensureIndexIsVisible doesn't work properly with fullscreen images when useVirtualLayout is true and columnWidth is set

- Make sure columnWidth/rowHeight settings are used as defaultMajorSize for the LLV in virtualized HorizontalLayout/VerticalLayout

QE notes:
Doc notes:
Bugs: SDK-31167
Reviewer:  Hans
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285386 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -1368,6 +1368,7 @@
             llv.defaultMinorSize = 71;
             llv.defaultMajorSize = 22;
         }
+
         var typicalElt:ILayoutElement = typicalLayoutElement;
         if (typicalElt)
         {
@@ -1376,8 +1377,13 @@
             llv.defaultMinorSize = typicalWidth;
             llv.defaultMajorSize = typicalHeight;
         }
+
+        if (!isNaN(rowHeight))
+            llv.defaultMajorSize = rowHeight;
+
         if (layoutTarget)
             llv.length = layoutTarget.numElements;
+
         llv.gap = gap;
         llv.majorAxisOffset = paddingTop;
     }