Passes should error when registering type is null

--- src/asfac.tests/src/com/thedevstop/asfac/FluentRegistrationTests.as
+++ src/asfac.tests/src/com/thedevstop/asfac/FluentRegistrationTests.as
@@ -79,5 +79,17 @@
 			var result2:Object = factory.resolve(Dictionary);
 			assertSame(result1, result2);
 		}
+
+		public function test_should_error_when_registering_type_is_null():void
+		{
+			var factory:FluentAsFactory = new FluentAsFactory();
+
+			var registerFunc:Function = function():void
+			{
+				factory.register(Dictionary).asType(null);
+			};
+
+			assertThrows(IllegalOperationError, registerFunc);
+		}
 	}
 }


fix PickingController.updateMouseOverElement() in order to avoid read mesh properties when no mesh is under the mouse cursor

--- src/aerys/minko/scene/controller/PickingController.as
+++ src/aerys/minko/scene/controller/PickingController.as
@@ -410,7 +410,7 @@
 			{
 				var mesh	: Mesh	= _pickingIdToMesh[pixelColor & 0xFFFFFF];

-				_currentMouseOver	= mesh.tag & _tag ? mesh : null;
+				_currentMouseOver	= mesh && (mesh.tag & _tag) != 0 ? mesh : null;
 			}
 			else
 				_currentMouseOver = null; // wrong antialiasing color or nothing got picked


Reverted version to Jeff's last checkin

Reverted version to Jeff's last checkin

git-svn-id: 9278a788294a4258aac04586390fc35fb4a5f335@6788 a9308255-753e-0410-a2e9-80b3fbc4fff6

--- FlexUnit4/src/org/flexunit/runner/notification/async/XMLListener.as
+++ FlexUnit4/src/org/flexunit/runner/notification/async/XMLListener.as
@@ -38,20 +38,20 @@

 package org.flexunit.runner.notification.async
 {
-	import flash.events.Event;
-	import flash.events.EventDispatcher;
-	import flash.events.IOErrorEvent;
-	import flash.events.SecurityErrorEvent;
-	import flash.net.XMLSocket;
-
-	import mx.logging.ILogger;
+	import flash.events.Event;
+	import flash.events.EventDispatcher;
+	import flash.events.IOErrorEvent;
+	import flash.events.SecurityErrorEvent;
+	import flash.net.XMLSocket;
+
+	import mx.logging.ILogger;
 	import mx.logging.Log;
-
-	import org.flexunit.runner.Descriptor;
-	import org.flexunit.runner.IDescription;
-	import org.flexunit.runner.Result;
-	import org.flexunit.runner.notification.Failure;
-	import org.flexunit.runner.notification.IAsyncStartupRunListener;
+
+	import org.flexunit.runner.Descriptor;
+	import org.flexunit.runner.IDescription;
+	import org.flexunit.runner.Result;
+	import org.flexunit.runner.notification.Failure;
+	import org.flexunit.runner.notification.IAsyncStartupRunListener;

 	public class XMLListener extends EventDispatcher implements IAsyncStartupRunListener
@@ -103,20 +103,29 @@
 		}

 		public function testRunStarted( description:IDescription ):void{
-
+			// XML Socket in flexbuilder is expecting a startTestRun node at the begining of the results.
+			// it seems to use this to reset hte current results, and prepopulate the total number of tests
+			// however, in flexunit4, we are unable to determine the total number of tests before hand, so
+			// we are sending through an empty startTestRun node, so the reset can still happen.
+			sendResults("<startTestRun totalTestCount='0'  projectName='' contextName='' />");
 		}

 		public function testRunFinished( result:Result ):void {

-			printHeader( result );
-			printResults(result);
+			// if we want to wait until all tests are finished before sending any results,
+			// in this method we should first call printHeader, then printResults, then printFooter
+			// however, as we are now sending through results as they happen, we use this method only to call printFooter
+			//printHeader( result );
+			//printResults(result);
 			printFooter( result );
 		}

 		public function testStarted( description:IDescription ):void {
+			// called before each test
 		}

 		public function testFinished( description:IDescription ):void {
+			// called after each test
 			if(!lastFailedTest || description.displayName != lastFailedTest.displayName){
 				var desc:Descriptor = getDescriptorFromDescription(description);
 				sendResults("<testCase name='"+desc.method+"' testSuite='"+desc.suite+"'  status='"+SUCCESS+"'/>");
@@ -125,9 +134,11 @@
 		}

 		public function testAssumptionFailure( failure:Failure ):void {
+			// called on assumptionFail
 		}

 		public function testIgnored( description:IDescription ):void {
+			// called on ignored test
 			var desc:Descriptor = getDescriptorFromDescription(description);
 			sendResults("<testCase name='"+desc.method+"' testSuite='"+desc.suite+"'  status='"+IGNORE+"'/>");
 			msgQueue.push("<testCase name='"+desc.method+"' testSuite='"+desc.suite+"'  status='"+IGNORE+"'/>");
@@ -135,6 +146,7 @@

 		public function testFailure( failure:Failure ):void {
+			// called on a test failure
 			lastFailedTest = failure.description;
 			var descriptor:Descriptor = getDescriptorFromDescription(failure.description);
 			var type : String = failure.description.displayName
@@ -157,6 +169,7 @@
 		 */

 		private function getDescriptorFromDescription(description:IDescription ):Descriptor{
+			// reads relavent data from descriptor
 			var descriptor:Descriptor = new Descriptor();
 			var descriptionArray:Array = description.displayName.split("::");
 			descriptor.path = descriptionArray[0];
@@ -183,7 +196,8 @@
 		}

 		protected function printFooter( result:Result ):void {
-			logger.warn(END_OF_TEST_RUN);
+		//	logger.warn(END_OF_TEST_RUN);
+			sendResults(END_OF_TEST_RUN);
 		}

 		protected function sendResults(msg:String):void{


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.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/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as
+++ frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as
@@ -0,0 +1,546 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.managers.marshalClasses
+{
+
+import flash.display.DisplayObject;
+import flash.display.Sprite;
+import flash.events.Event;
+import flash.events.IEventDispatcher;
+import flash.events.MouseEvent;
+import flash.ui.Mouse;
+
+import mx.core.FlexSprite;
+import mx.core.IFlexModuleFactory;
+import mx.events.Request;
+import mx.events.InterManagerRequest;
+import mx.events.SandboxMouseEvent;
+import mx.events.SWFBridgeRequest;
+import mx.managers.CursorManagerImpl;
+import mx.managers.IMarshalSystemManager;
+import mx.managers.ISystemManager;
+import mx.core.EventPriority;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+[Mixin]
+
+/**
+ *  @private
+ *  A SystemManager has various types of children,
+ *  such as the Application, popups,
+ *  tooltips, and custom cursors.
+ *  You can access the just the custom cursors through
+ *  the cursors property,
+ *  the tooltips via toolTips, and
+ *  the popups via popUpChildren.  Each one returns
+ *  a SystemChildrenList which implements IChildList.  The SystemManager's
+ *  IChildList methods return the set of children that aren't popups, tooltips
+ *  or cursors.  To get the list of all children regardless of type, you
+ *  use the rawChildrenList property which returns this SystemRawChildrenList.
+ */
+public class CursorManagerMarshalMixin
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class Method
+	//
+	//--------------------------------------------------------------------------
+
+	public static function init(fbs:IFlexModuleFactory):void
+	{
+		if (!CursorManagerImpl.mixins)
+			CursorManagerImpl.mixins = [];
+        if (CursorManagerImpl.mixins.indexOf(CursorManagerMarshalMixin) == -1)
+    		CursorManagerImpl.mixins.push(CursorManagerMarshalMixin);
+	}
+
+    //--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function CursorManagerMarshalMixin(owner:CursorManagerImpl = null)
+	{
+		super();
+
+        if (!owner)
+            return;
+
+		cursorManager = owner;
+
+        mp = IMarshalSystemManager(systemManager.getImplementation("mx.managers::IMarshalSystemManager"));
+
+		sandboxRoot.addEventListener(InterManagerRequest.CURSOR_MANAGER_REQUEST, marshalCursorManagerHandler, false, 0, true);
+
+        var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+		me.name = "update";
+		// trace("--->update request for CursorManagerImpl", sm);
+		sandboxRoot.dispatchEvent(me);
+		// trace("<---update request for CursorManagerImpl", sm);
+
+        cursorManager.addEventListener("currentCursorID", currentCursorIDHandler);
+        cursorManager.addEventListener("currentCursorXOffset", currentCursorXOffsetHandler);
+        cursorManager.addEventListener("currentCursorYOffset", currentCursorYOffsetHandler);
+        cursorManager.addEventListener("showCursor", showCursorHandler);
+        cursorManager.addEventListener("hideCursor", hideCursorHandler);
+        cursorManager.addEventListener("setCursor", setCursorHandler);
+        cursorManager.addEventListener("removeCursor", removeCursorHandler);
+        cursorManager.addEventListener("removeAllCursors", removeAllCursorsHandler);
+        cursorManager.addEventListener("setBusyCursor", setBusyCursorHandler);
+        cursorManager.addEventListener("removeBusyCursor", removeBusyCursorHandler);
+        cursorManager.addEventListener("initialize", initializeHandler);
+        cursorManager.addEventListener("addMouseMoveListener", addMouseMoveListenerHandler);
+        cursorManager.addEventListener("addMouseOutListener", addMouseOutListenerHandler);
+        cursorManager.addEventListener("removeMouseMoveListener", removeMouseMoveListenerHandler);
+        cursorManager.addEventListener("removeMouseOutListener", removeMouseOutListenerHandler);
+        cursorManager.addEventListener("registerToUseBusyCursor", registerToUseBusyCursorHandler);
+        cursorManager.addEventListener("unRegisterToUseBusyCursor", unRegisterToUseBusyCursorHandler);
+        cursorManager.addEventListener("showCustomCursor", showCustomCursorHandler);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Shortcuts to save typing
+	//
+	//--------------------------------------------------------------------------
+
+	private var cursorManager:CursorManagerImpl;
+
+	private	var mp:IMarshalSystemManager;
+
+	private function get initialized():Boolean
+	{
+		return cursorManager.initialized;
+	}
+
+	private function get sandboxRoot():DisplayObject
+	{
+		return cursorManager.systemManager.getSandboxRoot();
+	}
+
+	private function get systemManager():ISystemManager
+	{
+		return cursorManager.systemManager;
+	}
+
+	private function get cursorHolder():Sprite
+	{
+		return cursorManager.cursorHolder;
+	}
+
+	private function set cursorHolder(value:Sprite):void
+	{
+		cursorManager.cursorHolder = value;
+	}
+
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event Handlers
+	//
+	//--------------------------------------------------------------------------
+
+	public function initializeHandler(event:Event):void
+	{
+        // The first time a cursor is requested of the CursorManager,
+        // create a Sprite to hold the cursor symbol
+        cursorHolder = new FlexSprite();
+        cursorHolder.name = "cursorHolder";
+        cursorHolder.mouseEnabled = false;
+        cursorHolder.mouseChildren = false;
+        mp.addChildToSandboxRoot("cursorChildren", cursorHolder);
+
+		var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+		me.name = "initialized";
+		// trace("-->dispatched removeBusyCursor for CursorManagerImpl", sm);
+		sandboxRoot.dispatchEvent(me);
+		// trace("<--dispatched removeBusyCursor for CursorManagerImpl", sm);
+
+		event.preventDefault();
+	}
+
+	public function currentCursorIDHandler(event:Event):void
+	{
+		if (!cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "currentCursorID";
+			me.value = cursorManager.currentCursorID;
+			// trace("-->dispatched currentCursorID for CursorManagerImpl", sm, currentCursorID);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched currentCursorID for CursorManagerImpl", sm, currentCursorID);
+		}
+	}
+
+	public function currentCursorXOffsetHandler(event:Event):void
+	{
+		if (!cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "currentCursorXOffset";
+			me.value = cursorManager.currentCursorXOffset;
+			// trace("-->dispatched currentCursorXOffset for CursorManagerImpl", sm, currentCursorXOffset);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched currentCursorXOffset for CursorManagerImpl", sm, currentCursorXOffset);
+		}
+	}
+
+	public function currentCursorYOffsetHandler(event:Event):void
+	{
+		if (!cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "currentCursorYOffset";
+			me.value = cursorManager.currentCursorYOffset;
+			// trace("-->dispatched currentCursorYOffset for CursorManagerImpl", sm, currentCursorYOffset);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched currentCursorYOffset for CursorManagerImpl", sm, currentCursorYOffset);
+		}
+	}
+
+	public function showCursorHandler(event:Event):void
+	{
+		if (!cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "showCursor";
+			// trace("-->dispatched showCursor for CursorManagerImpl", sm);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched showCursor for CursorManagerImpl", sm);
+		}
+	}
+
+	public function hideCursorHandler(event:Event):void
+	{
+		if (!cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "hideCursor";
+			// trace("-->dispatched hideCursor for CursorManagerImpl", sm);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched hideCursor for CursorManagerImpl", sm);
+		}
+	}
+
+	public function setCursorHandler(event:Request):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "setCursor";
+			me.value = event.value
+			// trace("-->dispatched setCursor for CursorManagerImpl", sm, me.value);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched setCursor for CursorManagerImpl", sm, me.value);
+			event.value = me.value;
+			event.preventDefault();
+		}
+	}
+
+	public function removeCursorHandler(event:Request):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "removeCursor";
+			me.value = event.value;
+			// trace("-->dispatched removeCursor for CursorManagerImpl", sm, me.value);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched removeCursor for CursorManagerImpl", sm, me.value);
+			event.preventDefault();
+		}
+	}
+
+	public function removeAllCursorsHandler(event:Event):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "removeAllCursors";
+			// trace("-->dispatched removeAllCursors for CursorManagerImpl", sm);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched removeAllCursors for CursorManagerImpl", sm);
+			event.preventDefault();
+		}
+	}
+
+	public function setBusyCursorHandler(event:Event):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "setBusyCursor";
+			// trace("-->dispatched setBusyCursor for CursorManagerImpl", sm);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched setBusyCursor for CursorManagerImpl", sm);
+			event.preventDefault();
+		}
+	}
+
+	public function removeBusyCursorHandler(event:Event):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "removeBusyCursor";
+			// trace("-->dispatched removeBusyCursor for CursorManagerImpl", sm);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched removeBusyCursor for CursorManagerImpl", sm);
+			event.preventDefault();
+		}
+	}
+
+	public function registerToUseBusyCursorHandler(event:Request):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "registerToUseBusyCursor";
+			me.value = event.value;
+			// trace("-->dispatched registerToUseBusyCursor for CursorManagerImpl", sm, me.value);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched registerToUseBusyCursor for CursorManagerImpl", sm, me.value);
+			event.preventDefault();
+		}
+	}
+
+	public function unRegisterToUseBusyCursorHandler(event:Request):void
+	{
+        if (initialized && !cursorHolder)
+		{
+			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+			me.name = "unRegisterToUseBusyCursor";
+			me.value = event.value;
+			// trace("-->dispatched unRegisterToUseBusyCursor for CursorManagerImpl", sm, me.value);
+			sandboxRoot.dispatchEvent(me);
+			// trace("<--dispatched unRegisterToUseBusyCursor for CursorManagerImpl", sm, me.value);
+			event.preventDefault();
+		}
+	}
+
+	public function addMouseOutListenerHandler(event:Event):void
+	{
+        if (mp.useSWFBridge())
+        {
+			sandboxRoot.addEventListener(MouseEvent.MOUSE_OUT,
+                                       cursorManager.mouseOutHandler,true,EventPriority.CURSOR_MANAGEMENT);
+            event.preventDefault();
+        }
+    }
+
+	public function addMouseMoveListenerHandler(event:Event):void
+	{
+
+        if (mp.useSWFBridge())
+        {
+			sandboxRoot.addEventListener(MouseEvent.MOUSE_MOVE,
+                                       cursorManager.mouseMoveHandler,true,EventPriority.CURSOR_MANAGEMENT);
+            sandboxRoot.addEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,
+                                       marshalMouseMoveHandler,false,EventPriority.CURSOR_MANAGEMENT);
+            event.preventDefault();
+        }
+	}
+
+	public function removeMouseMoveListenerHandler(event:Event):void
+	{
+        if (mp.useSWFBridge())
+        {
+	        sandboxRoot.removeEventListener(MouseEvent.MOUSE_MOVE,
+                                          cursorManager.mouseMoveHandler,true);
+            sandboxRoot.removeEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,
+                                          marshalMouseMoveHandler,false);
+            event.preventDefault();
+        }
+	}
+
+	public function removeMouseOutListenerHandler(event:Event):void
+	{
+        if (mp.useSWFBridge())
+        {
+			sandboxRoot.removeEventListener(MouseEvent.MOUSE_OUT,
+                                       cursorManager.mouseOutHandler,true);
+            event.preventDefault();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function marshalMouseMoveHandler(event:Event):void
+    {
+		if (cursorHolder.visible)
+		{
+			// mouse is outside our sandbox, restore it.
+			cursorHolder.visible = false;
+			var cursorRequest:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST);
+			var bridge:IEventDispatcher;
+           	if (mp.useSWFBridge())
+			{
+				bridge = mp.swfBridgeGroup.parentBridge;;
+			}
+			else
+				bridge = systemManager;
+			cursorRequest.requestor = bridge;
+			bridge.dispatchEvent(cursorRequest);
+			if (cursorRequest.data)
+				Mouse.show();
+		}
+
+    }
+
+
+    private function showCustomCursorHandler(event:Event):void
+	{
+		var cursorRequest:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST);
+		var bridge:IEventDispatcher;
+        if (mp.useSWFBridge())
+		{
+			bridge = mp.swfBridgeGroup.parentBridge;;
+		}
+		else
+			bridge = systemManager;
+		cursorRequest.requestor = bridge;
+		bridge.dispatchEvent(cursorRequest);
+    }
+
+	/**
+	 *  Marshal cursorManager
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	private function marshalCursorManagerHandler(event:Event):void
+	{
+		if (event is InterManagerRequest)
+			return;
+
+		var marshalEvent:Object = event;
+		switch (marshalEvent.name)
+		{
+		case "initialized":
+			// trace("--marshaled initialized for CursorManagerImpl", sm, marshalEvent.value);
+			cursorManager.initialized = marshalEvent.value;
+			break;
+		case "currentCursorID":
+			// trace("--marshaled currentCursorID for CursorManagerImpl", sm, marshalEvent.value);
+			cursorManager._currentCursorID = marshalEvent.value;
+			break;
+		case "currentCursorXOffset":
+			// trace("--marshaled currentCursorXOffset for CursorManagerImpl", sm, marshalEvent.value);
+			cursorManager._currentCursorXOffset = marshalEvent.value;
+			break;
+		case "currentCursorYOffset":
+			// trace("--marshaled currentCursorYOffset for CursorManagerImpl", sm, marshalEvent.value);
+			cursorManager._currentCursorYOffset = marshalEvent.value;
+			break;
+		case "showCursor":
+			if (cursorHolder)
+			{
+				// trace("--marshaled showCursor for CursorManagerImpl", sm);
+				cursorHolder.visible = true;
+;			}
+			break;
+		case "hideCursor":
+			if (cursorHolder)
+			{
+				// trace("--marshaled hideCursor for CursorManagerImpl", sm);
+				cursorHolder.visible = false;
+;			}
+			break;
+		case "setCursor":
+			// trace("--marshaled setCursor for CursorManagerImpl", sm, marshalEvent.value);
+			if (cursorHolder)
+			{
+				marshalEvent.value = cursorManager.setCursor.apply(cursorManager, marshalEvent.value);
+			}
+			break;
+		case "removeCursor":
+			if (cursorHolder)	// it is our drag
+			{
+				cursorManager.removeCursor.apply(cursorManager, [ marshalEvent.value ]);
+				// trace("--marshaled removeCursor for CursorManagerImpl", sm, marshalEvent.value);
+			}
+			break;
+		case "removeAllCursors":
+			// trace("--marshaled removeAllCursors for CursorManagerImpl", sm);
+			if (cursorHolder)
+				cursorManager.removeAllCursors();
+			break;
+		case "setBusyCursor":
+			// trace("--marshaled setBusyCursor for CursorManagerImpl", sm);
+			if (cursorHolder)
+				cursorManager.setBusyCursor();
+			break;
+		case "removeBusyCursor":
+			// trace("--marshaled removeBusyCursor for CursorManagerImpl", sm);
+			if (cursorHolder)
+				cursorManager.removeBusyCursor();
+			break;
+		case "registerToUseBusyCursor":
+			// trace("--marshaled registerToUseBusyCursor for CursorManagerImpl", sm, marshalEvent.value);
+			if (cursorHolder)
+				cursorManager.registerToUseBusyCursor.apply(this, marshalEvent.value);
+			break;
+		case "unRegisterToUseBusyCursor":
+			// trace("--marshaled unRegisterToUseBusyCursor for CursorManagerImpl", sm, marshalEvent.value);
+			if (cursorHolder)
+				cursorManager.unRegisterToUseBusyCursor.apply(this, marshalEvent.value);
+			break;
+		case "update":
+			// if we own the cursorHolder, then we're first CursorManager
+			// so update the others
+			if (cursorHolder)
+			{
+				// trace("-->marshaled update for CursorManagerImpl", sm);
+				var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+				me.name = "initialized";
+				me.value = true;
+				// trace("-->dispatched initialized for CursorManagerImpl", sm, true);
+				sandboxRoot.dispatchEvent(me);
+				// trace("<--dispatched initialized for CursorManagerImpl", sm, true);
+				me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+				me.name = "currentCursorID";
+				me.value = cursorManager.currentCursorID;
+				// trace("-->dispatched currentCursorID for CursorManagerImpl", sm, true);
+				sandboxRoot.dispatchEvent(me);
+				// trace("<--dispatched currentCursorID for CursorManagerImpl", sm, true);
+				me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+				me.name = "currentCursorXOffset";
+				me.value = cursorManager.currentCursorXOffset;
+				// trace("-->dispatched currentCursorXOffset for CursorManagerImpl", sm, true);
+				sandboxRoot.dispatchEvent(me);
+				// trace("<--dispatched currentCursorXOffset for CursorManagerImpl", sm, true);
+				me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
+				me.name = "currentCursorYOffset";
+				me.value = cursorManager.currentCursorYOffset;
+				// trace("-->dispatched currentCursorYOffset for CursorManagerImpl", sm, true);
+				sandboxRoot.dispatchEvent(me);
+				// trace("<--dispatched currentCursorYOffset for CursorManagerImpl", sm, true);
+				// trace("<--marshaled update for CursorManagerImpl", sm);
+			}
+		}
+	}
+}
+
+}


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@1264400 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
+++ frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2011 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.calendarClasses
 {
 import spark.collections.OnDemandDataProvider;


added ASDoc for DynamicTextureController

--- src/aerys/minko/scene/controller/mesh/DynamicTextureController.as
+++ src/aerys/minko/scene/controller/mesh/DynamicTextureController.as
@@ -11,6 +11,19 @@
 	import flash.display.DisplayObject;
 	import flash.geom.Matrix;

+	/**
+	 * The DynamicTextureController makes it possible to use Flash DisplayObjects
+	 * as dynamic textures.
+	 *
+	 * <p>
+	 * The DynamicTextureController listen for the Scene.enterFrame signal and
+	 * update the specified texture property of the targeted Meshes by rasterizing
+	 * the source Flash DisplayObject.
+	 * </p>
+	 *
+	 * @author Jean-Marc Le Roux
+	 *
+	 */
 	public final class DynamicTextureController extends EnterFrameController
 	{
 		private var _source			: DisplayObject		= null;
@@ -24,6 +37,20 @@

 		private var _lastDraw	: Number				= 0.;

+		/**
+		 * Create a new DynamicTextureController.
+		 *
+		 * @param source The source DisplayObject to use as a dynamic texture.
+		 * @param width The width of the dynamic texture.
+		 * @param height The height of the dynamic texture.
+		 * @param mipMapping Whether mip-mapping should be enabled or not. Default value is 'true'.
+		 * @param framerate The frame rate of the dynamic texture. Default value is '30'.
+		 * @param propertyName The name of the bindings property that should be set with the
+		 * dynamic texture. Default value if 'diffuseMap'.
+		 * @param matrix The Matrix object that shall be used when rasterizing the DisplayObject
+		 * into the dynamic texture. Default value is 'null'.
+		 *
+		 */
 		public function DynamicTextureController(source			: DisplayObject,
 												 width			: Number,
 												 height			: Number,


try optimizing what gets added/removed to reduce number of layout passes

--- frameworks/projects/Effects/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as
+++ frameworks/projects/Effects/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as
@@ -18,12 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
-
-    import org.apache.flex.states.AddItems;
-    import org.apache.flex.states.SetEventHandler;
-    import org.apache.flex.states.SetProperty;
-    import org.apache.flex.states.State;
-
+
     import org.apache.flex.core.IParent;
     import org.apache.flex.core.IStatesObject;
     import org.apache.flex.effects.Effect;
@@ -31,6 +26,10 @@
     import org.apache.flex.events.EventDispatcher;
     import org.apache.flex.events.IEventDispatcher;
     import org.apache.flex.events.ValueChangeEvent;
+    import org.apache.flex.states.AddItems;
+    import org.apache.flex.states.SetEventHandler;
+    import org.apache.flex.states.SetProperty;
+    import org.apache.flex.states.State;
     import org.apache.flex.states.Transition;
     import org.apache.flex.utils.MXMLDataInterpreter;

@@ -122,11 +121,13 @@
                 }
             }
             var arr:Array = doc.states;
+            var oldState:State;
+            var newState:State;
             for each (var s:State in arr)
             {
                 if (s.name == event.oldValue)
                 {
-                    revert(s);
+                    oldState = s;
                     break;
                 }
             }
@@ -134,10 +135,14 @@
             {
                 if (s.name == event.newValue)
                 {
-                    apply(s);
+                    newState = s;
                     break;
                 }
             }
+            if (oldState)
+                revert(oldState, newState);
+            if (newState)
+                apply(oldState, newState);
             if (transitionEffects && transitionEffects.length > 0)
             {
                 for each (e in transitionEffects)
@@ -185,21 +190,57 @@
                 doc.dispatchEvent(new Event("stateChangeComplete"));
             }
         }
+
+        private function isItemInState(child:Object, s:State):Boolean
+        {
+            if (s == null) return false;

-        private function revert(s:State):void
-        {
             var arr:Array = s.overrides;
             for each (var o:Object in arr)
             {
                 if (o is AddItems)
                 {
                     var ai:AddItems = AddItems(o);
+                    if (ai.items == null)
+                    {
+                        ai.items = ai.itemsDescriptor.items as Array;
+                        if (ai.items == null)
+                        {
+                            ai.items =
+                                MXMLDataInterpreter.generateMXMLArray(ai.document,
+                                    null, ai.itemsDescriptor.descriptor);
+                            ai.itemsDescriptor.items = ai.items;
+                        }
+                    }
                     for each (var item:IChild in ai.items)
                     {
-                        var parent:IParent = item.parent as IParent;
-                        parent.removeElement(item);
-                    }
-                    if (parent is IContainer)
+                        if (item == child)
+                            return true;
+                    }
+                }
+            }
+            return false;
+        }
+
+        private function revert(s:State, newState:State):void
+        {
+            var arr:Array = s.overrides;
+            for each (var o:Object in arr)
+            {
+                if (o is AddItems)
+                {
+                    var ai:AddItems = AddItems(o);
+                    var childrenAdded:Boolean = false;
+                    for each (var item:IChild in ai.items)
+                    {
+                        if (!isItemInState(item, newState))
+                        {
+                            var parent:IParent = item.parent as IParent;
+                            parent.removeElement(item);
+                            childrenAdded = true;
+                        }
+                    }
+                    if (childrenAdded && parent is IContainer)
                         IContainer(parent).childrenAdded();
                 }
                 else if (o is SetProperty)
@@ -225,7 +266,7 @@
             }
         }

-        private function apply(s:State):void
+        private function apply(oldState:State, s:State):void
         {
             var arr:Array = s.overrides;
             for each (var o:Object in arr)
@@ -244,27 +285,33 @@
                             ai.itemsDescriptor.items = ai.items;
                         }
                     }
+                    var childrenAdded:Boolean = false;
                     for each (var item:Object in ai.items)
                     {
-                        var parent:IParent = ai.document as IParent;
-                        if (ai.destination)
-                            parent = parent[ai.destination] as IParent;
-                        if (ai.relativeTo != null)
-                        {
-                            var child:Object = ai.document[ai.relativeTo];
+                        if (!isItemInState(item, oldState))
+                        {
+                            var parent:IParent = ai.document as IParent;
                             if (ai.destination)
-                                parent = IChild(child).parent as IParent;
-                            var index:int = parent.getElementIndex(child);
-                            if (ai.position == "after")
-                                index++;
-                            parent.addElementAt(item, index);
-                        }
-                        else
-                        {
-                            parent.addElement(item);
-                        }
-                    }
-                    if (parent is IContainer)
+                                parent = parent[ai.destination] as IParent;
+                            if (ai.relativeTo != null)
+                            {
+                                var child:Object = ai.document[ai.relativeTo];
+                                if (ai.destination)
+                                    parent = IChild(child).parent as IParent;
+                                var index:int = parent.getElementIndex(child);
+                                if (ai.position == "after")
+                                    index++;
+                                parent.addElementAt(item, index);
+                                childrenAdded = true;
+                            }
+                            else
+                            {
+                                parent.addElement(item);
+                                childrenAdded = true;
+                            }
+                        }
+                    }
+                    if (childrenAdded && parent is IContainer)
                         IContainer(parent).childrenAdded();
                 }
                 else if (o is SetProperty)


Fixes problem with callback wrapping with Stage3D.


Transferred from the Adobe Open Source Subversion Repository

Revision: 7753
Author:   clucier@adobe.com
Date:     2009-06-11T19:29:44.202472Z

Log Message:
-----------
Adding backgroundFrameRate property to WindowedApplication, to by default reduce the CPU usage in cases where an app is not 'active'.

Bugs: SDK-21135
Reviewer: Ryan, Darrell
QE Notes: Test needs to be written for this new API. PARB has tentatively approved, will update spec here: http://opensource.adobe.com/wiki/display/flexsdk/Spark+WindowedApplication
Doc Notes: Needs to be documented and ASDoc scrubbed.

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

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -769,6 +769,11 @@
      *  @private
      */
     private var windowBoundsChanged:Boolean = true;
+
+    /**
+     *  @private
+     */
+    private var prevActiveFrameRate:Number = -1;

     /**
      *  @private
@@ -1237,6 +1242,39 @@
         nativeApplication.autoExit = value;
     }

+    //----------------------------------
+    //  backgroundFrameRate
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the backgroundFrameRate property.
+     */
+    private var _backgroundFrameRate:Number = 1;
+
+    /**
+     *  Specifies framerate to use when the application is inactive.
+     *  When set to -1 no background framerate throttling will occur.
+     *
+     *  @default 1
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get backgroundFrameRate():Number
+    {
+        return _backgroundFrameRate;
+    }
+
+    /**
+     *  @private
+     */
+    public function set backgroundFrameRate(frameRate:Number):void
+    {
+        _backgroundFrameRate = frameRate;
+    }
+
     //----------------------------------
     //  bounds
     //----------------------------------
@@ -3268,6 +3306,13 @@
     private function nativeApplication_activateHandler(event:Event):void
     {
         dispatchEvent(new AIREvent(AIREvent.APPLICATION_ACTIVATE));
+
+        // Restore throttled framerate if appropriate when application is activated.
+        if (prevActiveFrameRate >= 0 && stage)
+        {
+            stage.frameRate = prevActiveFrameRate;
+            prevActiveFrameRate = -1;
+        }
     }

     /**
@@ -3276,6 +3321,16 @@
     private function nativeApplication_deactivateHandler(event:Event):void
     {
         dispatchEvent(new AIREvent(AIREvent.APPLICATION_DEACTIVATE));
+
+        // Throttle framerate if appropriate when application is deactivated.
+        // Ensure we've received an updateComplete on the chance our layout
+        // manager is using phased instantiation (we don't wish to store a
+        // maxed out (1000fps) framerate).
+        if ((_backgroundFrameRate >= 0) && (ucCount > 0) && stage)
+        {
+            prevActiveFrameRate = stage.frameRate;
+            stage.frameRate = _backgroundFrameRate;
+        }
     }

     /**


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@1269509 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/effects/effectClasses/GlowInstance.as
+++ frameworks/projects/mx/src/mx/effects/effectClasses/GlowInstance.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 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: 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@1248848 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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: 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@1261273 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorShader.as
+++ frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorShader.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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: 18884
Author:   jasonsj@adobe.com
Date:     2010-12-01T01:01:18.896589Z

Log Message:
-----------
Use authorDensity in Mobile theme

QE notes: By default, 240 devices should still report as 240. Mustella known goods should not be affected.
Doc notes:
Bugs:
Reviewer: egeorgie
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.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/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.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="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.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@1265342 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as
@@ -13,6 +13,8 @@
 {
 import flash.display.DisplayObject;
 import flash.display.Graphics;
+
+import mx.core.DeviceDensity;

 import spark.components.Button;
 import spark.primitives.Graphic;
@@ -59,9 +61,9 @@
         useChromeColor = true;

         // set the right assets and dimensions to use based on the screen density
-        switch (targetDensity)
+        switch (authorDensity)
         {
-            case MobileSkin.PPI240:
+            case DeviceDensity.PPI_240:
             {
                 thumbImageWidth = 65;
                 thumbImageHeight = 65;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<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/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.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/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.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/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.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="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.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/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_upSelected.fxg</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/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</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="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/airmobile-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as
@@ -47,7 +47,7 @@
         return borderClass;
     }

-    override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
+    override protected function drawChromeColor(chromeColorGraphics:Graphics, unscaledWidth:Number, unscaledHeight:Number):void
     {
         // Don't do anything. The fxg files contain the background
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12334
Author:   egeorgie@adobe.com
Date:     2009-12-01T21:36:03.465733Z

Log Message:
-----------
Fix http://bugs.adobe.com/jira/browse/SDK-24217 Layout properties not being applied the same way during component creation vs being set after component is created

Problem: GroupBase transfers clipAndEnableScrolling value from the old layout to the new layout unconditionally.
Fix: Transfer the value only if it was explicitly set on the GroupBase itself.

QE notes: None
Doc notes: None
Bugs: SDK-24217
Reviewer: Ryan, Hans
Tests run: checkintests, mustella/tests/gumbo/core
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -381,9 +381,27 @@
     {
         if (_layout == value)
             return;
-
-        if (value)
-        {
+
+        if (_layout)
+        {
+            _layout.target = null;
+            _layout.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, redispatchLayoutEvent);
+
+            if (clipAndEnableScrollingExplicitlySet)
+            {
+                // when the layout changes, we don't want to transfer over
+                // horizontalScrollPosition and verticalScrollPosition
+                _layoutProperties = {clipAndEnableScrolling: _layout.clipAndEnableScrolling};
+            }
+        }
+
+        _layout = value;
+
+        if (_layout)
+        {
+            _layout.target = this;
+            _layout.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, redispatchLayoutEvent);
+
             if (_layoutProperties)
             {
                 if (_layoutProperties.clipAndEnableScrolling !== undefined)
@@ -397,30 +415,6 @@

                 _layoutProperties = null;
             }
-
-            if (_layout)
-                value.clipAndEnableScrolling = _layout.clipAndEnableScrolling;
-        }
-        else
-        {
-            if (_layout)
-            {
-                // when the layout changes, we don't want to transfer over
-                // horizontalScrollPosition and verticalScrollPosition
-                _layoutProperties = {clipAndEnableScrolling: _layout.clipAndEnableScrolling};
-            }
-        }
-
-        if (_layout)
-        {
-            _layout.target = null;
-            _layout.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, redispatchLayoutEvent);
-        }
-        _layout = value;
-        if (_layout)
-        {
-            _layout.target = this;
-            _layout.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, redispatchLayoutEvent);
         }

         invalidateSize();
@@ -549,6 +543,8 @@
     //----------------------------------
     //  clipAndEnableScrolling
     //----------------------------------
+
+    private var clipAndEnableScrollingExplicitlySet:Boolean = false;

     /**
      *  @copy spark.core.IViewport#clipAndEnableScrolling
@@ -582,6 +578,7 @@
      */
     public function set clipAndEnableScrolling(value:Boolean):void
     {
+        clipAndEnableScrollingExplicitlySet = true;
         if (_layout)
         {
             _layout.clipAndEnableScrolling = value;


Made PropertyInjectionPoint only accept the 'name' parameter as providing the injection name instead of just using whatever parameter provides a value at all.

--- src/org/swiftsuspenders/injectionpoints/PropertyInjectionPoint.as
+++ src/org/swiftsuspenders/injectionpoints/PropertyInjectionPoint.as
@@ -59,7 +59,7 @@
 		{
 			_propertyType = node.parent().@type.toString();
 			_propertyName = node.parent().@name.toString();
-			_injectionName = node.arg.attribute('value').toString();
+			_injectionName = node.arg.(@key == 'name').attribute('value').toString();
 			_injectionIsOptional = node.arg.(@key == 'optional').length() != 0;
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10919
Author:   gosmith@adobe.com
Date:     2009-10-07T22:15:33.759089Z

Log Message:
-----------
Integrated TLF Build 517.

This isn't the latest TLF build, but it is the one that introduced a significant API change, so I want to take it before taking other TLF changes. The ITextLineCreator interface, with its createTextLine() and recreateTextLine() methods, has been replaced with an ISWFContext interface with a callInContext() method. This required changes in 11 framework classes and in the MXML compiler's autogenerated code for the module factory classes.

The purpose of both the old and the new interface is to support cross-SWF font embedding, by allowing certain FTE calls such as textBlock.createTextLine() to execute in the SWF where the font you're using is embedded.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Alex should review
Tests run: ant checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/compose/TextFlowLine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/compose/IFlowComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_edit/src/flashx/textLayout/container/TextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/TextFieldFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/CoreClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/BuildInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/compose/ComposeState.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/ReleaseNotes.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/compose/FlowComposerBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/factory/StringTextLineFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/compose/SimpleCompose.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/elements/FlowLeafElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/factory/TextLineFactoryBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/tlf.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_core/src/flashx/textLayout/factory/TextFlowTextLineFactory.as</path>

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

--- frameworks/projects/framework/src/mx/core/TextFieldFactory.as
+++ frameworks/projects/framework/src/mx/core/TextFieldFactory.as
@@ -175,7 +175,7 @@
 			{
 				fteTextField = moduleFactory.create(
 					"mx.core.FTETextField");
-                fteTextField.textLineCreator = moduleFactory;
+                fteTextField.fontContext = moduleFactory;
 			}

 			// The dictionary could be empty, but not null because entries in the dictionary


Transferred from the Adobe Open Source Subversion Repository

Revision: 5198
Author:   hmuller@adobe.com
Date:     2009-03-06T22:47:28.478141Z

Log Message:
-----------
Added GroupBase::getVirtualElement() per PARB.  This is the final PARB viewport/virtualization change.

Note that although this is a new public method, it should not be called directly by tests or apps.

QE Notes: Mustella DataGroup tests pass
Doc Notes: This is a new method.
Bugs:
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -1065,7 +1065,7 @@
         // current contentWidth; cache computed widths/heights in llv.
         for (; (y < maxVisibleY) && (index < eltCount); index++)
         {
-            var elt:ILayoutElement = layoutTarget.getElementAt(index);
+            var elt:ILayoutElement = layoutTarget.getVirtualElementAt(index);
             var h:Number = (isNaN(fixedRowHeight)) ? elt.getPreferredBoundsHeight() : fixedRowHeight;
             var w:Number = calculateElementWidth(elt, targetWidth, containerWidth);
             var x:Number = calculateElementX(elt, w, containerWidth);
@@ -1086,7 +1086,7 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getElementAt(index);
+                    elt = layoutTarget.getVirtualElementAt(index);
                     w = calculateElementWidth(elt, targetWidth, containerWidth);
                     x = calculateElementX(elt, w, containerWidth);
                     elt.setLayoutBoundsPosition(x, elt.getLayoutBoundsY());


Transferred from the Adobe Open Source Subversion Repository

Revision: 6296
Author:   mhorn@adobe.com
Date:     2009-04-27T19:28:25.993605Z

Log Message:
-----------
fix asdoc errors. 2 <ul> tags were missing closing slashes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -52,7 +52,7 @@
  *    property is ignored when the layout is virtualized.

  *
  *
Set the element's height to its preferred height.

- *

+ *

  *
  *  The width of each element is calculated according to the following rules,
  *  listed in their respective order of precedence (element's minium width and


Transferred from the Adobe Open Source Subversion Repository

Revision: 21298
Author:   eday@adobe.com
Date:     2011-05-26T18:40:11.465737Z

Log Message:
-----------
Vertical and horizontal layout now always update content size: even if no items are visible.

QE notes: none
Doc notes: none
Bugs: SDK-30297
Reviewer: Hans
Tests run: checkintests, Cyclone
Is noteworthy for integration: no

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@1285383 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -1766,6 +1766,9 @@
         var targetWidth:Number = Math.max(0, layoutTarget.width - paddingLeft - paddingRight);
         var minVisibleY:Number = layoutTarget.verticalScrollPosition;
         var maxVisibleY:Number = minVisibleY + layoutTarget.height;
+
+        var contentHeight:Number;
+        var paddedContentHeight:Number;

         updateLLV(layoutTarget);

@@ -1776,7 +1779,13 @@
         // simply start from minVisibleY - SDK-22497.
         var startIndex:int = llv.indexOf(Math.max(0, minVisibleY + gap));
         if (startIndex == -1)
+        {
+            // No items are visible.  Just set the content size.
+            contentHeight = llv.end(llv.length - 1) - paddingTop;
+            paddedContentHeight = Math.ceil(contentHeight + paddingTop + paddingBottom);
+            layoutTarget.setContentSize(layoutTarget.contentWidth, paddedContentHeight);
             return;
+        }

         var fixedRowHeight:Number = NaN;
         if (!variableRowHeight)
@@ -1829,7 +1838,7 @@
         }

         // Third pass: if neccessary, fix up y based on updated contentHeight
-        var contentHeight:Number = llv.end(llv.length - 1) - paddingTop;
+        contentHeight = llv.end(llv.length - 1) - paddingTop;
         var targetHeight:Number = Math.max(0, layoutTarget.height - paddingTop - paddingBottom);
         if (contentHeight < targetHeight)
         {
@@ -1861,7 +1870,7 @@
         // Make sure that if the content spans partially over a pixel to the right/bottom,
         // the content size includes the whole pixel.
         var paddedContentWidth:Number = Math.ceil(contentWidth + paddingLeft + paddingRight);
-        var paddedContentHeight:Number = Math.ceil(contentHeight + paddingTop + paddingBottom);
+        paddedContentHeight = Math.ceil(contentHeight + paddingTop + paddingBottom);
         layoutTarget.setContentSize(paddedContentWidth, paddedContentHeight);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6792
Author:   jimurphy@adobe.com
Date:     2009-05-11T18:24:09.346026Z

Log Message:
-----------
Merged revisions 6729,6731,6746,6755,6757,6765,6767-6768,6770-6772,6775,6784-6786,6790 from http://p01weblab02.corp.adobe.com/svn/opensource/flex/sdk/branches/beta1

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashContainerPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/TypeHelper.java</path>
<path kind="dir" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types" copyfrom-rev="6790" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/RadioButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types/FXGMatrix.java" copyfrom-rev="6790" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/types/FXGMatrix.java</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -1195,9 +1195,13 @@
      */
      override public function getDestinationIndex(navigationUnit:uint, currentIndex:int):int
      {
-        if (!target)
+        if (!target || target.numElements < 1)
             return -1;
+
+        // Make sure currentIndex is within range
         var maxIndex:int = target.numElements - 1;
+        currentIndex = Math.max(0, Math.min(maxIndex, currentIndex));
+
         var newIndex:int;
         var bounds:Rectangle;
         var y:Number;
@@ -1244,7 +1248,7 @@

                     // Find the element after the last element that spans above the y position
                     newIndex = currentIndex - 1;
-                    while (0 < newIndex)
+                    while (0 <= newIndex)
                     {
                         bounds = getElementBounds(newIndex);
                         if (bounds && bounds.top < y)
@@ -1287,7 +1291,7 @@

                     // Find the element before the first element that spans below the y position
                     newIndex = currentIndex + 1;
-                    while (newIndex < maxIndex)
+                    while (newIndex <= maxIndex)
                     {
                         bounds = getElementBounds(newIndex);
                         if (bounds && bounds.bottom > y)