Transferred from the Adobe Open Source Subversion Repository

Revision: 7774
Author:   jszeto@adobe.com
Date:     2009-06-12T00:38:51.011501Z

Log Message:
-----------
GradientGlowFilter bug fix for default type

http://bugs.adobe.com/jira/browse/SDK-21734 - GradientGlowFilter type should default to “outer”

The constructor was calling the super constructor at the end, which caused the class variables to get reset to the parent class backing variable default values. In the process, I also noticed that the filter classes weren’t calling super() in their constructors, so I fixed that issue as well.

QE Notes: None
Doc Notes: None
Bugs: SDK-21734
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GradientBevelFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as
+++ frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as
@@ -81,6 +81,8 @@
 	                                  clamp:Boolean = true, color:uint = 0,
 	                                  alpha:Number = 0.0)
 	{
+		super();
+
 		this.matrixX = matrixX;
 		this.matrixY = matrixY;
 		this.matrix = matrix;


Allowing users to move the II reason to the I position after the I reason is deleted

--- Arguments/src/Model/AGORAMapModel.as
+++ Arguments/src/Model/AGORAMapModel.as
@@ -606,7 +606,12 @@
 				var atm:ArgumentTypeModel = ArgumentTypeModel(model);
 				var claimModel:StatementModel = atm.claimModel;
 				if( atm == claimModel.supportingArguments[0] ){
-					requestXML = moveSupportingStatements(atm, 0, diffy, requestXML);
+					if(claimModel.xgrid == atm.xgrid){
+						requestXML = moveSupportingStatements(atm, 0, diffy, requestXML);
+					}
+					else{
+						requestXML = moveSupportingStatements(atm, diffx, diffy, requestXML);
+					}
 				}else{
 					requestXML = moveSupportingStatements(atm, diffx, diffy, requestXML);
 				}
@@ -621,7 +626,11 @@
 								{
 									requestXML = moveSupportingStatements(reason, diffx, diffy, requestXML);
 								}else{
-									requestXML = moveSupportingStatements(reason, 0, diffy, requestXML);
+									if(reason.xgrid == argumentTypeModel.claimModel.xgrid){
+										requestXML = moveSupportingStatements(reason, 0, diffy, requestXML);
+									}else{
+										requestXML = moveSupportingStatements(reason, diffx, diffy, requestXML);
+									}
 								}
 							}else{
 								requestXML = moveSupportingStatements(reason, 0, diffy, requestXML);


Add balance system

Add balance system

--- Impetus.swf/ImpetusSound.as
+++ Impetus.swf/ImpetusSound.as
@@ -12,6 +12,7 @@
         private var channel:SoundChannel;

         private var volume:int;
+        private var balance:int;

         public function ImpetusSound(url:String, defaultVolume:int):void
         {
@@ -38,7 +39,8 @@
             }

             this.channel = sound.play(pos);
-            this.channel.soundTransform = new SoundTransform(this.volume, 0);
+
+            this.updateTransform();
         }

         public function stop():void
@@ -57,12 +59,29 @@
         {
             this.volume = volume;

-            this.channel.soundTransform = new SoundTransform(this.volume, 0);
+            this.updateTransform();
         }

         public function getVolume():int
         {
             return this.volume;
         }
+
+        public function setBalance(balance:int):void
+        {
+            this.balance = balance;
+
+            this.updateTransform();
+        }
+
+        public function getBalance():int
+        {
+            return this.balance;
+        }
+
+        private function updateTransform():void
+        {
+            this.channel.soundTransform = new SoundTransform(this.volume, this.balance);
+        }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5342
Author:   smgilson@adobe.com
Date:     2009-03-17T12:18:48.123385Z

Log Message:
-----------
Fix errors in ASDod comments

QE Notes: None
Doc Notes: None
Bugs:

Modified Paths:
--------------
<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/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/mx/src/mx/core/Application.as
+++ frameworks/projects/mx/src/mx/core/Application.as
@@ -279,7 +279,7 @@
      *
This property has been deprecated starting in Flex4. Note that this
      *  property will return applications of type Application and
      *  WindowedApplication as before but will return null for applications
-     *  of type FxApplication or FxWindowedApplication.
+     *  of type FxApplication or FxWindowedApplication.

      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -1141,9 +1141,9 @@
      */
     override mx_internal function initThemeColor():Boolean
     {
-    	if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_0)
-    		return true;
-
+        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_0)
+            return true;
+
         var result:Boolean = super.initThemeColor();

         if (!result)


LinkableHashMap now avoids re-using any previously used name when
generating a unique object name.

Change-Id: I09a7eaa85c6e049f34d9192a62e5c9b3b19caa26

--- WeaveCore/src/weave/core/LinkableHashMap.as
+++ WeaveCore/src/weave/core/LinkableHashMap.as
@@ -51,12 +51,14 @@
 		}
 		private const _childListCallbacks:ChildListCallbackInterface = newLinkableChild(this, ChildListCallbackInterface);
 		private const _orderedNames:Array = []; // an ordered list of names appearing in _nameToObjectMap
-		private const _nameToObjectMap:Object = new Object(); // maps an identifying name to an object
+		private const _nameToObjectMap:Object = {}; // maps an identifying name to an object
 		private const _objectToNameMap:Dictionary = new Dictionary(true); // maps an object to an identifying name
-		private const _nameIsLocked:Object = new Object(); // maps an identifying name to a value of true if that name is locked.
+		private const _nameIsLocked:Object = {}; // maps an identifying name to a value of true if that name is locked.
+		private const _previousNameMap:Object = {}; // the keys in this object are object names that were previously used.
 		private var _hashMapIsLocked:Boolean = false; // true if the LinkableHashMap is locked.
 		private var _typeRestriction:Class = null; // restricts the type of object that can be stored
-		private var _typeRestrictionClassName:String = null; // qualified class name of _typeRestriction
+		private var _typeRestrictionClassName:String = null; // qualified class name of _typeRestriction
+

 		/**
 		 * This is an interface for adding and removing callbacks that will get triggered immediately
@@ -130,7 +132,7 @@
 			var name:String;
 			var i:int;
 			var originalNameCount:int = _orderedNames.length; // remembers how many names existed before appending
-			var haveSeen:Object = new Object(); // to remember which names have been seen in newOrder
+			var haveSeen:Object = {}; // to remember which names have been seen in newOrder
 			// append each name in newOrder to the end of _orderedNames
 			for (i = 0; i < newOrder.length; i++)
 			{
@@ -263,7 +265,9 @@
 			_nameToObjectMap[name] = object;
 			_objectToNameMap[object] = name;
 			// add the name to the end of _orderedNames
-			_orderedNames.push(name);
+			_orderedNames.push(name);
+			// remember that this name was used
+			_previousNameMap[name] = true;

 			// make sure the callback variables signal that the object was added
 			_childListCallbacks.runCallbacks(name, object, null);
@@ -347,7 +351,7 @@
 		{
 			var count:int = 1;
 			var name:String = baseName;
-			while (_nameToObjectMap[name] != undefined)
+			while (_previousNameMap[name] != undefined)
 				name = baseName + (++count);
 			return name;
 		}


fixed sorting bug

fixed sorting bug

--- WeaveData/src/weave/data/StatisticsCache.as
+++ WeaveData/src/weave/data/StatisticsCache.as
@@ -80,6 +80,7 @@
 import weave.api.getCallbackCollection;
 import weave.api.registerDisposableChild;
 import weave.compiler.StandardLib;
+import weave.data.QKeyManager;

 internal class ColumnStatistics implements IColumnStatistics
 {
@@ -334,8 +335,8 @@

 		outKeys.length = count;
 		outNumbers.length = count;
-		// Array.sort() is very fast when no compare function is given.
-		var outIndices:Array = outNumbers.sort(Array.NUMERIC | Array.RETURNINDEXEDARRAY);
+		var qkm:QKeyManager = WeaveAPI.QKeyManager as QKeyManager;
+		var outIndices:Array = StandardLib.sortOn(outKeys, [outNumbers, qkm.keyTypeLookup, qkm.localNameLookup], null, false, true);
 		median = outNumbers[outIndices[int(count / 2)]];
 		i = count;
 		while (--i >= 0)


Fixed bug where TextInputWithPrompt prompt wasn't being
cleared when typing a character immediately after focusing in.

Change-Id: I04832335dcc59850455f8d8e24e913dc080b294c

--- WeaveUI/src/weave/ui/TextInputWithPrompt.as
+++ WeaveUI/src/weave/ui/TextInputWithPrompt.as
@@ -18,11 +18,12 @@
 */
 package weave.ui
 {
-	import flash.events.FocusEvent;
-
-	import mx.controls.TextInput;
-	import mx.core.mx_internal;
-
+	import flash.events.FocusEvent;
+
+	import mx.controls.TextInput;
+	import mx.core.mx_internal;
+	import mx.utils.ObjectUtil;
+
 	import weave.compiler.StandardLib;

 	use namespace mx_internal;
@@ -38,8 +39,6 @@
 		public function TextInputWithPrompt()
 		{
 			super();
-			addEventListener(FocusEvent.FOCUS_IN, captureFocusIn, true);
-			addEventListener(FocusEvent.FOCUS_OUT, captureFocusOut, true);
 		}

 		public function asTextInput():TextInput { return this; }
@@ -168,6 +167,11 @@
 				super.text = newText;

 				updateTextColor();
+
+				// Validate now to make sure the inner UITextField text is updated as well.
+				// This fixes a bug where the prompt text would remain if a character is typed
+				// immediately after clicking in the text input.
+				validateNow();
 			}
 		}

@@ -176,26 +180,36 @@
 		/**
 		 * This function hides the prompt if it is shown, and selects all if autoSelect is true.
 		 */
-		protected function captureFocusIn(event:FocusEvent):void
-		{
-			_hasFocus = true;
-			hidePrompt();
-
-			if (autoSelect)
-			{
-				selectionBeginIndex = 0;
-				selectionEndIndex = text.length;
-			}
-		}
+		override protected function focusInHandler(event:FocusEvent):void
+		{
+			if (!_hasFocus)
+			{
+				_hasFocus = true;
+				hidePrompt();
+
+				if (autoSelect)
+				{
+					selectionBeginIndex = 0;
+					selectionEndIndex = text.length;
+				}
+			}
+
+			super.focusInHandler(event);
+		}

 		/**
 		 * This function makes the prompt reappear if the text is empty.
 		 */
-		protected function captureFocusOut(event:FocusEvent):void
-		{
-			_hasFocus = false;
-			if (!text)
-				showPrompt();
+		override protected function focusOutHandler(event:FocusEvent):void
+		{
+			if (_hasFocus)
+			{
+				_hasFocus = false;
+				if (!text)
+					showPrompt();
+			}
+
+			super.focusOutHandler(event);
 		}

 		/**


Added ignoreUpdate property to ScaleBinding

git-svn-id: 6aa7ccb0a2048310a30f08a72aaff4ca39d980ed@195 91848ab2-c4ae-4e4f-8e6a-6a52ea0dccc3

--- flare/src/flare/vis/data/ScaleBinding.as
+++ flare/src/flare/vis/data/ScaleBinding.as
@@ -50,6 +50,11 @@
 		/** @private */
 		protected var _stats:Stats;

+		/** If true, updates to the underlying data will be ignored, as will
+		 *  any calls to updateBinding. Set this flag if you want
+		 *  to prevent the scale values from changing automatically. */
+		public var ignoreUpdates:Boolean = false;
+
 		/** The type of scale to create. */
 		public override function get scaleType():String {
 			return _scaleType ? _scaleType : scale.scaleType;
@@ -220,6 +225,7 @@
 		 */
 		public function updateBinding():void
 		{
+			if (ignoreUpdates) return;
 			var stats:Stats = _data.group(_group).stats(_property);
 			if (stats !== _stats) { // object identity test
 				_stats = null;
@@ -234,6 +240,7 @@
 		 */
 		private function onDataEvent(evt:DataEvent):void
 		{
+			if (ignoreUpdates) return;
 			if (evt.list.name == _group) {
 				if (evt.type == DataEvent.UPDATE) {
 					updateBinding();


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

--- frameworks/projects/charts/src/mx/charts/styles/metadata/TextStyles.as
+++ frameworks/projects/charts/src/mx/charts/styles/metadata/TextStyles.as
@@ -1,24 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-/**
- *  Color of text in the component, including the component label.
- *
- *  @default 0x0B333C
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
+
 [Style(name="color", type="uint", format="Color", inherit="yes")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 18364
Author:   jasonsj@adobe.com
Date:     2010-10-29T00:40:27.526972Z

Log Message:
-----------
Revert previous change for removing textShadowColor and textShadowAlpha.

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as
@@ -92,6 +92,30 @@
  *  @productversion Flex 4.5
  */
 [Style(name="focusColor", type="uint", format="Color", inherit="yes", theme="mobile")]
+
+/**
+ *  Color of text shadows.
+ *
+ *  @default #FFFFFF
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="textShadowColor", type="uint", format="Color", inherit="yes", theme="mobile")]
+
+/**
+ *  Alpha of text shadows.
+ *
+ *  @default 0.55
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="textShadowAlpha", type="Number",inherit="yes", minValue="0.0", maxValue="1.0", theme="mobile")]

 //--------------------------------------
 //  Skin states


Transferred from the Adobe Open Source Subversion Repository

Revision: 20024
Author:   gruehle@adobe.com
Date:     2011-01-31T23:19:49.749584Z

Log Message:
-----------
TextAreaSkin fixes:
* Change the way the StyleableTextField is managed within the skin. It is now wrapped by a Group (instead of a VGroup), and positioned/sized with constraints.
* Add constraint support to StyleableTextField
* Add minHeight/minWidth to StyleableTextField
* Fixed several issues with TextArea being sized by constraints or percent sizes
* Add support for lineBreak="explicit"

QE notes:
Doc notes:
Bugs: SDK-29301, SDK-29255, SDK-29215, SDK-29210, SDK-27928
Reviewer: Ryan, Jason SJ
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -22,9 +22,9 @@
 import mx.core.mx_internal;
 import mx.events.FlexEvent;

+import spark.components.Group;
 import spark.components.Scroller;
 import spark.components.TextArea;
-import spark.components.VGroup;
 import spark.components.supportClasses.StyleableTextField;
 import spark.skins.mobile.supportClasses.TextSkinBase;
 import spark.skins.mobile160.assets.TextInput_border;
@@ -150,7 +150,7 @@
     //
     //--------------------------------------------------------------------------

-    private var textDisplayGroup:VGroup;
+    private var textDisplayGroup:Group;

     private var _isIOS:Boolean;

@@ -170,6 +170,7 @@
             textDisplay.editable = true;
             textDisplay.lineBreak = getStyle("lineBreak");
             textDisplay.useTightTextBounds = false;
+			textDisplay.scrollToRangeDelegate = scrollToRange;

             // on iOS, resize the TextField and let the native control handle scrolling
             _isIOS = (Capabilities.version.indexOf("IOS") == 0);
@@ -180,8 +181,13 @@
             textDisplay.addEventListener(Event.CHANGE, textDisplay_changeHandler);
             textDisplay.addEventListener(FlexEvent.VALUE_COMMIT, textDisplay_changeHandler);

+			textDisplay.left = getStyle("paddingLeft");
+			textDisplay.top = getStyle("paddingTop");
+			textDisplay.right = getStyle("paddingRight");
+			textDisplay.bottom = getStyle("paddingBottom");
+
             // wrap StyleableTextComponent in Group for viewport
-            textDisplayGroup = new VGroup();
+            textDisplayGroup = new Group();
             textDisplayGroup.clipAndEnableScrolling = true;
             textDisplayGroup.addElement(textDisplay);
         }
@@ -192,6 +198,7 @@
             scroller.minViewportInset = 0;
             scroller.measuredSizeIncludesScrollBars = false;
             scroller.ensureElementIsVisibleForSoftKeyboard = false;
+
             addChild(scroller);
         }

@@ -248,6 +255,14 @@
         // Use the old textDisplay width as an estimte for the new one.
         // If we are wrong, we'll find out in updateDisplayList()
         textDisplay.commitStyles();
+
+		// Clear min sizes first.
+		textDisplay.minWidth = textDisplay.minHeight = NaN;
+
+		// If lineBreak == explicit, always use NaN for estimated width
+		if (getStyle("lineBreak") == "explicit")
+			textDisplayEstimatedWidth = NaN;
+
         setElementSize(textDisplay, textDisplayEstimatedWidth, NaN);

         measuredHeight = getElementPreferredHeight(textDisplay) + paddingTop + paddingBottom;
@@ -269,23 +284,23 @@
         setElementPosition(scroller, 0, 0);

         // position & size the text
+		var explicitLineBreak:Boolean = getStyle("lineBreak") == "explicit";
         var paddingLeft:Number = getStyle("paddingLeft");
         var paddingRight:Number = getStyle("paddingRight");
         var paddingTop:Number = getStyle("paddingTop");
         var paddingBottom:Number = getStyle("paddingBottom");

-        textDisplayGroup.paddingLeft = paddingLeft;
-        textDisplayGroup.paddingRight = paddingRight;
-        textDisplayGroup.paddingTop = paddingTop;
-        textDisplayGroup.paddingBottom = paddingBottom;
-
         var unscaledTextWidth:Number = unscaledWidth - paddingLeft - paddingRight;
         var unscaledTextHeight:Number = unscaledHeight - paddingTop - paddingBottom;
         var textHeight:Number = unscaledTextHeight;
+		var textWidth:Number = explicitLineBreak ? textDisplay.measuredTextSize.x : unscaledTextWidth;
+
+        // grab old measured textDisplay height before resizing it
+        var oldPreferredTextHeight:Number = getElementPreferredHeight(textDisplay);

         // set width first to measure height correctly
         textDisplay.commitStyles();
-        textDisplay.width = unscaledTextWidth;
+        textDisplay.setLayoutBoundsSize(textWidth, NaN);

         // TextField height should match its content or the TextArea bounds at minimum
         // iOS special case to prevent Flex Scroller scrolling when editable
@@ -311,9 +326,6 @@
         if (textDisplay.scrollV > 1)
             textDisplay.scrollV = 1;

-        // grab old measured textDisplay height before resizing it
-        var oldPreferredTextHeight:Number = getElementPreferredHeight(textDisplay);
-
         // keep track of oldUnscaledWidth so we have a good guess as to the width
         // of the textDisplay on the next measure() pass
         oldUnscaledWidth = unscaledWidth;
@@ -321,7 +333,12 @@
         // set the width of textDisplay to textWidth.
         // set the height to oldTextHeight.  If the height's actually wrong,
         // we'll invalidateSize() and go through this layout pass again anyways
-        setElementSize(textDisplay, unscaledTextWidth, textHeight);
+        setElementSize(textDisplay, textWidth, textHeight);
+
+		// Set minWidth/Height on the text so the textDisplayGroup sizes accordingly
+		textDisplay.minWidth = textWidth;
+		textDisplay.minHeight = textHeight;
+		textDisplayGroup.invalidateDisplayList();

         // grab new measured textDisplay height after the textDisplay has taken its final width
         var newPreferredTextHeight:Number = getElementPreferredHeight(textDisplay);
@@ -344,11 +361,25 @@
             // getCharBoundaries() returns null for new lines
             if (!caretBounds)
             {
-                // temporarily insert a character at the caretIndex
-                textDisplay.replaceText(charIndex, charIndex, "W");
-                caretBounds = textDisplay.getCharBoundaries(charIndex);
-                lineIndex = textDisplay.getLineIndexOfChar(charIndex);
-                textDisplay.replaceText(charIndex, charIndex + 1, "");
+				// Optimization: if the charIndex is the end of the text, set vsp to
+				// textHeight and let snapTextScrollPosition validate it
+
+				if (charIndex == textDisplay.text.length)
+				{
+					// Make sure textDisplayGroup is validated, otherwise the
+					// verticalScrollPosition may be out of bounds, which will
+					// cause a bounce effect.
+					textDisplayGroup.validateNow();
+					textDisplayGroup.verticalScrollPosition = textHeight;
+				}
+				else
+				{
+					// temporarily insert a character at the caretIndex
+					textDisplay.replaceText(charIndex, charIndex, "W");
+					caretBounds = textDisplay.getCharBoundaries(charIndex);
+					lineIndex = textDisplay.getLineIndexOfChar(charIndex);
+					textDisplay.replaceText(charIndex, charIndex + 1, "");
+				}
             }

             if (caretBounds)
@@ -399,8 +430,57 @@

             invalidateCaretPosition = false;
         }
-    }
-
+
+		// Make sure final scroll position is valid
+		snapTextScrollPosition();
+    }
+
+	/**
+	 *  @private
+	 *  Make sure the scroll positions are valid, and adjust if needed.
+	 */
+	private function snapTextScrollPosition():void
+	{
+		var maxHsp:Number = textDisplayGroup.contentWidth > textDisplayGroup.width ?
+			textDisplayGroup.contentWidth-textDisplayGroup.width : 0;
+		textDisplayGroup.horizontalScrollPosition =
+			Math.min(Math.max(0,textDisplayGroup.horizontalScrollPosition),maxHsp);
+
+		var maxVsp:Number = textDisplayGroup.contentHeight > textDisplayGroup.height ?
+			textDisplayGroup.contentHeight-textDisplayGroup.height : 0;
+		textDisplayGroup.verticalScrollPosition =
+			Math.min(Math.max(0,textDisplayGroup.verticalScrollPosition),maxVsp);
+	}
+
+	/**
+	 *  @private
+	 */
+	private function scrollToRange(anchorPosition:int, activePosition:int):void
+	{
+		var pos:int = Math.min(anchorPosition, activePosition);
+		var bounds:Rectangle = textDisplay.getCharBoundaries(pos);
+		var vsp:int = textDisplayGroup.verticalScrollPosition;
+		var paddingTop:Number = getStyle("paddingTop");
+		var paddingBottom:Number = getStyle("paddingBottom");
+
+		if (bounds && (bounds.top < vsp - paddingTop ||
+			 bounds.bottom > vsp + unscaledHeight - paddingTop - paddingBottom))
+		{
+			textDisplayGroup.verticalScrollPosition = bounds.top + paddingTop;
+			snapTextScrollPosition();
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Returns true if scroller can scroll.
+	 */
+	private function isScrollingActive():Boolean
+	{
+		return textDisplayGroup.height < textDisplayGroup.contentHeight ||
+			   textDisplayGroup.width < textDisplayGroup.contentWidth;
+	}
+
     /**
      *  @private
      *  Handle size and caret position changes that occur when text content
@@ -408,19 +488,12 @@
      */
     private function textDisplay_changeHandler(event:Event):void
     {
-        invalidateDisplayList();
-        invalidateCaretPosition = true;
-
-        if (isNaN(hostComponent.explicitHeight))
-        {
-            // invalidate TextAreaSkin size to grow/shrink with content
-            invalidateSize();
-        }
-        else
-        {
-            // invalidate the Group size to update the Scroller
-            textDisplayGroup.invalidateSize();
-        }
+		invalidateSize();
+		if (isScrollingActive())
+		{
+	        invalidateDisplayList();
+	        invalidateCaretPosition = true;
+		}
     }

     /**
@@ -430,15 +503,24 @@
     private function textDisplay_keyHandler(event:KeyboardEvent):void
     {
         // update scroll position when caret changes
-        if (!isNaN(hostComponent.explicitHeight) &&
-            (event.keyCode == Keyboard.UP
+        if ((event.keyCode == Keyboard.UP
                 || event.keyCode == Keyboard.DOWN
                 || event.keyCode == Keyboard.LEFT
                 || event.keyCode == Keyboard.RIGHT))
         {
-            invalidateDisplayList();
-            invalidateCaretPosition = true;
-        }
+			if (isScrollingActive())
+			{
+	            invalidateDisplayList();
+	            invalidateCaretPosition = true;
+			}
+        }
+
+		// Change event is not always sent when delete key is pressed, so
+		// invalidate the size here
+		if (event.keyCode == Keyboard.BACKSPACE)
+		{
+			invalidateSize();
+		}
     }

     /**
@@ -451,6 +533,18 @@
         // propogate styleChanged explicitly to textDisplay
         if (textDisplay)
             textDisplay.styleChanged(styleProp);
+
+		// Check for padding style changes
+		if (!styleProp || styleProp == "styleName" || styleProp.indexOf("padding") >= 0)
+		{
+			if (textDisplay)
+			{
+				textDisplay.left = getStyle("paddingLeft");
+				textDisplay.top = getStyle("paddingTop");
+				textDisplay.right = getStyle("paddingRight");
+				textDisplay.bottom = getStyle("paddingBottom");
+			}
+		}
     }
 }
 }


Added "_self" to the Flash version of LaunchEmail to stop it opening up a blank web page.

--- src/diddy/native/diddy.flash.as
+++ src/diddy/native/diddy.flash.as
@@ -47,6 +47,6 @@
 	static public function launchEmail(email:String, subject:String, text:String):void
 	{
 		var adobeURL:URLRequest = new URLRequest("mailto:"+email+"&subject="+subject+"&body="+text+"");
-		navigateToURL(adobeURL);
+		navigateToURL(adobeURL, "_self");
 	}
 }


Try harder to keep duration and lastKnownPlaylistStartTime up to date.

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -568,6 +568,7 @@

 			// Kick off the next round as appropriate.
 			dispatchDVRStreamInfo();
+			updateTotalDuration();
 			reloadingManifest = null; // don't want to hang on to it
 			if (reloadTimer) reloadTimer.start();

@@ -803,7 +804,6 @@

 			if(!manifest)
 				return;
-

 			var segments:Vector.<HLSManifestSegment> = getSegmentsForQuality( lastQuality );
 			var activeManifest:HLSManifestParser = getManifestForQuality(lastQuality);


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

--- frameworks/projects/rpc/src/mx/utils/Translator.as
+++ frameworks/projects/rpc/src/mx/utils/Translator.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13046
Author:   hneelu@adobe.com
Date:     2009-12-17T12:34:07.695337Z

Log Message:
-----------
Updating automation sources..

Modified Paths:
--------------
451 paths were modified

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGroupAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGroupAutomationImpl.as
@@ -0,0 +1,241 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.delegates.components
+{
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+
+	import mx.automation.Automation;
+	import mx.automation.IAutomationClass;
+	import mx.automation.IAutomationObject;
+	import mx.automation.IAutomationObjectHelper;
+	import mx.core.EventPriority;
+	import mx.core.IVisualElement;
+	import mx.core.mx_internal;
+
+	import spark.automation.delegates.components.supportClasses.SparkGroupBaseAutomationImpl;
+	import spark.automation.events.SparkListItemSelectEvent;
+	import spark.components.DataGroup;
+	import spark.components.IItemRenderer;
+	import spark.components.Scroller;
+	import spark.events.RendererExistenceEvent;
+
+	use namespace mx_internal;
+
+	[Mixin]
+	public class SparkDataGroupAutomationImpl extends SparkGroupBaseAutomationImpl
+	{
+		include "../../../core/Version.as";
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(spark.components.DataGroup, SparkDataGroupAutomationImpl);
+		}
+
+		public function SparkDataGroupAutomationImpl(obj:spark.components.DataGroup)
+		{
+			super(obj);
+		}
+
+		public function get sparkDataGroup():spark.components.DataGroup
+		{
+			return uiComponent as spark.components.DataGroup;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 *  Replays click interactions on the button.
+		 *  If the interaction was from the mouse,
+		 *  dispatches MOUSE_DOWN, MOUSE_UP, and CLICK.
+		 *  If interaction was from the keyboard,
+		 *  dispatches KEY_DOWN, KEY_UP.
+		 *  Button's KEY_UP handler then dispatches CLICK.
+		 *
+		 *  @param event ReplayableClickEvent to replay.
+		 */
+		override public function replayAutomatableEvent(event:Event):Boolean
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+
+			if (event is MouseEvent && event.type == MouseEvent.CLICK)
+				return help.replayClick(uiComponent, MouseEvent(event));
+			else if (event is KeyboardEvent)
+			{
+				// the key board events happens on the scroller.
+				var scroller:spark.components.Scroller = getInternalScroller();
+				if(scroller)
+				{
+					var helper:IAutomationObjectHelper = Automation.automationObjectHelper;
+					if(helper)
+						helper.replayKeyboardEvent(scroller,event as KeyboardEvent);
+
+				}
+				return true;
+			}
+			else
+				return super.replayAutomatableEvent(event);
+		}
+
+
+		/**
+		 *  @private
+		 */
+		override public function get numAutomationChildren():int
+		{
+			return sparkDataGroup.numChildren;
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function getAutomationChildAt(index:int):IAutomationObject
+		{
+			return sparkDataGroup.getChildAt(index) as IAutomationObject;
+		}
+
+		/**
+		 * @private
+		 */
+		override protected function componentInitialized():void
+		{
+			addMouseClickHandlerToExistingRenderers();
+
+			if(sparkDataGroup)
+			{
+				sparkDataGroup.addEventListener(
+					RendererExistenceEvent.RENDERER_ADD, dataGroup_rendererAddHandler, false, 0, true);
+				sparkDataGroup.addEventListener(
+					RendererExistenceEvent.RENDERER_REMOVE, dataGroup_rendererRemoveHandler, false, 0 , true);
+			}
+			super.componentInitialized();
+		}
+
+		protected function dataGroup_rendererAddHandler(event:RendererExistenceEvent):void
+		{
+			var renderer:IVisualElement = event.renderer;
+
+			if (renderer)
+				renderer.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler,false,-100,true);
+
+			if(renderer is IAutomationObject)
+				IAutomationObject(renderer).showInAutomationHierarchy = true;
+		}
+
+
+		/**
+		 *  @private
+		 */
+		protected function dataGroup_rendererRemoveHandler(event:RendererExistenceEvent):void
+		{
+			var renderer:Object = event.renderer;
+
+			if (renderer)
+				renderer.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+		}
+
+		/**
+		 *  @private
+		 */
+
+		protected function mouseDownHandler(event:MouseEvent):void
+		{
+			if(event.currentTarget as IItemRenderer)
+				recordDataGroupItemClickEvent(event.currentTarget as IItemRenderer , event);
+
+		}
+
+		/**
+		 * @private
+		 */
+
+		protected function recordDataGroupItemClickEvent(item:IItemRenderer,
+													 trigger:Event,
+													 cacheable:Boolean=true):void
+		{
+			var selectionType:String = SparkListItemSelectEvent.SELECT;
+			var keyEvent:KeyboardEvent = trigger as KeyboardEvent;
+			var mouseEvent:MouseEvent = trigger as MouseEvent;
+
+			var indexSelection:Boolean = false;
+
+			if (!Automation.automationManager || !Automation.automationManager.automationEnvironment)
+				return ;
+
+			var automationClass:IAutomationClass = Automation.automationManager.automationEnvironment.getAutomationClassByInstance(sparkDataGroup);
+
+			var event:SparkListItemSelectEvent = new SparkListItemSelectEvent(selectionType);
+			if (indexSelection)
+				fillItemRendererIndex(item, event);
+			else
+				event.itemRenderer = item;
+
+			event.triggerEvent = trigger;
+			if (keyEvent)
+			{
+				event.ctrlKey = keyEvent.ctrlKey;
+				event.shiftKey = keyEvent.shiftKey;
+				event.altKey = keyEvent.altKey;
+			}
+			else if (mouseEvent)
+			{
+				event.ctrlKey = mouseEvent.ctrlKey;
+				event.shiftKey = mouseEvent.shiftKey;
+				event.altKey = mouseEvent.altKey;
+			}
+
+			recordAutomatableEvent(event, cacheable);
+		}
+
+		/**
+		 *  @private
+		 */
+
+		protected function fillItemRendererIndex(item:IItemRenderer, event:SparkListItemSelectEvent):void
+		{
+			event.itemIndex = sparkDataGroup.getElementIndex(item as IVisualElement);
+
+		}
+
+		protected function addMouseClickHandlerToExistingRenderers():void
+		{
+
+			var count:int = sparkDataGroup? sparkDataGroup.numElements:0;
+			for (var i:int = 0; i<count ; i++)
+			{
+				var currentObj:Object = sparkDataGroup.getElementAt(i);
+				if( currentObj is IItemRenderer)
+					(currentObj as IItemRenderer).addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler,false, -100,true);
+				if(currentObj is IAutomationObject)
+					IAutomationObject(currentObj).showInAutomationHierarchy = true;
+			}
+
+		}
+	}
+}


Adapted Trazzle logger configuration to changes in Trazzle

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

--- src/reprise/core/Application.as
+++ src/reprise/core/Application.as
@@ -128,11 +128,9 @@

 		protected function initialize() : void
 		{
-			CONFIG::debug
-			{
-				var className : String = getQualifiedClassName(this).split('::').pop();
-				zz_init(stage, className);
-			}
+			var className : String = getQualifiedClassName(this).split('::').pop();
+			zz_init(stage, className);
+
 			m_appContext = new ApplicationContext(this, this.loaderInfo);
 			ApplicationRegistry.instance().registerApplication(this);
 			stage.align = StageAlign.TOP_LEFT;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17889
Author:   chiedozi@adobe.com
Date:     2010-09-28T00:03:51.347470Z

Log Message:
-----------
Added an mx_internal activeView property to MobileApplicationBase
Added inspectable metadata to destructionPolicy on ViewNavigatorBase

QE notes:
Doc notes:
Bugs: SDK-28003
Reviewer: Jason SJ
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/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/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
@@ -192,6 +192,7 @@

     private var _destructionPolicy:String = ContainerDestructionPolicy.AUTO;

+    [Inspectable(category="General", enumeration="auto,always,never", defaultValue="auto")]
     /**
      *  Sets the destructionPolicy for the navigator.  This property determines
      *  if the contents of the navigator should be destroyed when the navigator


FIXED - FLEX-24502 Mobile optimized skins and item renderers don't show text when mirrored

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -49,6 +49,7 @@
 import mx.core.FlexTextField;
 import mx.core.IInvalidating;
 import mx.core.IVisualElement;
+import mx.core.LayoutDirection;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
@@ -214,6 +215,66 @@
             invalidateTightTextHeight = true;
             invalidateTextSizeFlag = true;
         }
+        validateTransformMatrix();
+    }
+
+    /**
+     *  @private
+     *  True if we've inherited layoutDirection="rtl".
+     *  (implementation largely inspired from UITextField)
+     */
+    private var mirror: Boolean = false;
+
+    //----------------------------------
+    //  x
+    //----------------------------------
+
+    private var _x: Number = 0;
+
+    /**
+     *  @private
+     */
+    override public function set x(value: Number): void
+    {
+        _x = value;
+        super.x = value;
+        validateTransformMatrix();
+    }
+
+    /**
+     *  @private
+     */
+    override public function get x(): Number
+    {
+           return (mirror) ? _x : super.x;
+    }
+
+    /**
+     *  @private
+     *  Update the transform.matrix based on the mirror flag.  This method must be
+     *  called when x, width, or layoutDirection changes.
+     */
+    private function validateTransformMatrix(): void
+    {
+        if (mirror) {
+            var mirrorMatrix: Matrix = this.transform.matrix;
+            // matrix a must be negative
+            if (mirrorMatrix.a > 0){
+                mirrorMatrix.a = -mirrorMatrix.a;
+            }
+            mirrorMatrix.tx = _x + width;
+            transform.matrix = mirrorMatrix;
+        }
+        else // layoutDirection changed, mirror=false, reset transform.matrix to its default
+        {
+            var defaultMatrix: Matrix = this.transform.matrix;
+            if (defaultMatrix.a < 0) {
+                defaultMatrix.a = -defaultMatrix.a;
+            }
+            defaultMatrix.tx = _x;
+            defaultMatrix.ty = y;
+            transform.matrix = defaultMatrix;
+        }
     }

     /**
@@ -1051,11 +1112,25 @@
     {
         if (invalidateStyleFlag)
         {
+            // compute mirror
+            const oldMirror: Boolean = mirror;
+            if (parent is IVisualElement)
+                mirror = IVisualElement(parent).layoutDirection == LayoutDirection.RTL;
+            if (mirror || oldMirror)
+                validateTransformMatrix();
+
             var align:String = getStyle("textAlign");
             if (align == "start")
                 align = TextFormatAlign.LEFT;
             if (align == "end")
                 align = TextFormatAlign.RIGHT;
+            // textalign must be mirrored as well
+            if (mirror){
+                if (align == TextFormatAlign.LEFT)
+                   align =TextFormatAlign.RIGHT;
+                else if (align == TextFormatAlign.RIGHT )
+                  align = TextFormatAlign.LEFT;
+            }
             textFormat.align = align;
             textFormat.font = getStyle("fontFamily");
             textFormat.bold = getStyle("fontWeight") == "bold";
@@ -1113,7 +1188,7 @@
             invalidateTightTextHeight = true;
         }
     }
-
+
     /**
      *  @copy mx.core.UIComponent#getStyle()
      *
@@ -2164,7 +2239,7 @@
     mx_internal var leftMargin:Object;
     mx_internal var rightMargin:Object;

-    private static var supportedStyles:String = "textAlign fontFamily fontWeight fontStyle color fontSize textDecoration textIndent leading letterSpacing"
+    private static const supportedStyles:Vector.<String> = new <String>["textAlign", "fontFamily", "fontWeight", "fontStyle", "color", "fontSize"    , "textDecoration","textIndent" ,"leading" ,"letterSpacing" ,"layoutDirection"];

     private var invalidateStyleFlag:Boolean = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12339
Author:   clucier@adobe.com
Date:     2009-12-01T22:28:31.107685Z

Log Message:
-----------
Reducing some of the event dispatching noise in the SDK.  Seeing pretty good results in our runtime performance tests and startup times... 5%-15% improvement over all.  This is about all we'll be able to commit to for Flex 4.0.  Added hasEventListener test before dispatching more of our lifecycle events.  Modified compiler binding code-gen to do the same.  Documented all public facing events where applicable to denote that they are no longer capturable by default.

QE notes: No
Doc notes: No
Bugs: SDK-24249
Reviewer: Alex
Tests run: Mustella, Checkin
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.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/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</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/graphics/SolidColor.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/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEvaluator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
+++ frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
@@ -517,8 +517,9 @@
 	private function dispatchStrokeChangedEvent(prop:String, oldValue:*,
 												value:*):void
 	{
-        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, prop,
-															oldValue, value));
+        if (hasEventListener("propertyChange"))
+            dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, prop,
+			    oldValue, value));
 	}
 }


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

--- frameworks/projects/rpc/src/mx/messaging/management/ObjectName.as
+++ frameworks/projects/rpc/src/mx/messaging/management/ObjectName.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messaging.management
 {


disabled ramachandran plot tool menu item by default

Change-Id: Ifc31fc13eb31c1536a515e2a6d6e2b02923c88e3

--- WeaveUI/src/weave/WeaveProperties.as
+++ WeaveUI/src/weave/WeaveProperties.as
@@ -126,7 +126,7 @@
 		public const enableAddCompoundRadViz:LinkableBoolean = new LinkableBoolean(true); // Add CompoundRadViz option tools menu
 //		public const enableAddSP2:LinkableBoolean = new LinkableBoolean(true); // Add SP2 option tools menu
 //		public const enableAddWordle:LinkableBoolean = new LinkableBoolean(true); // Add Wordle option tools menu
-		public const enableAddRamachandranPlot:LinkableBoolean = new LinkableBoolean(true); // Add RamachandranPlot option tools menu
+		public const enableAddRamachandranPlot:LinkableBoolean = new LinkableBoolean(false); // Add RamachandranPlot option tools menu
 //		public const enableAddSurfacePlotter:LinkableBoolean = new LinkableBoolean(true); // Add Surface Plotter option tools menu

 		public const enablePanelCoordsPercentageMode:LinkableBoolean = new LinkableBoolean(true); // resize/position tools when window gets resized (percentage based rather than absolute)


fixed import of ComplexClass

fixed import of ComplexClass

--- test/src/as3reflect/TypeTest.as
+++ test/src/as3reflect/TypeTest.as
@@ -21,12 +21,13 @@
  */
 package as3reflect {

+	import as3reflect.testclasses.ComplexClass;
 	import as3reflect.testclasses.PublicClass;
-
+
 	import flash.utils.describeType;
-
+
 	import flexunit.framework.TestCase;
-
+
 	import mx.logging.LogEventLevel;

 	/**
@@ -71,44 +72,44 @@
 			assertEquals(LogEventLevel.ERROR, errorConstant.getValue());
 		}

-	    public function testNoArgumentConstructorClass():void {
-	      var type:Type = Type.forClass(PublicClass);
-	      var constructor:Constructor = type.constructor;
-	      assertNotNull(constructor);
-	      assertNotNull(constructor.declaringType);
-	      assertEquals(constructor.declaringType.clazz, PublicClass);
-	      assertEquals(constructor.parameters.length, 0);
-	    }
-
-	    public function testWithArgumentConstructorClass():void {
+		public function testNoArgumentConstructorClass():void {
+		  var type:Type = Type.forClass(PublicClass);
+		  var constructor:Constructor = type.constructor;
+		  assertNotNull(constructor);
+		  assertNotNull(constructor.declaringType);
+		  assertEquals(constructor.declaringType.clazz, PublicClass);
+		  assertEquals(constructor.parameters.length, 0);
+		}
+
+		public function testWithArgumentConstructorClass():void {

-	      var type:Type = Type.forClass(ComplexClass);
+		  var type:Type = Type.forClass(ComplexClass);

-	      var constructor:Constructor= type.constructor;
-	      assertNotNull(constructor);
-	      assertNotNull(constructor.declaringType);
-	      assertEquals(constructor.declaringType.clazz, ComplexClass);
-	      assertEquals(constructor.parameters.length, 3);
-
-	      var firstParameter:Parameter = constructor.parameters[0];
-
-	      assertFalse(firstParameter.isOptional);
-	      assertEquals(1, firstParameter.index);
-	      assertEquals(String, firstParameter.type.clazz);
-
-	      var secondParameter:Parameter = constructor.parameters[1];
-
-	      assertFalse(secondParameter.isOptional);
-	      assertEquals(2, secondParameter.index);
-	      assertEquals(Number, secondParameter.type.clazz);
-
-
-	      var thirdParameter:Parameter = constructor.parameters[2];
+		  var constructor:Constructor= type.constructor;
+		  assertNotNull(constructor);
+		  assertNotNull(constructor.declaringType);
+		  assertEquals(constructor.declaringType.clazz, ComplexClass);
+		  assertEquals(constructor.parameters.length, 3);
+
+		  var firstParameter:Parameter = constructor.parameters[0];
+
+		  assertFalse(firstParameter.isOptional);
+		  assertEquals(1, firstParameter.index);
+		  assertEquals(String, firstParameter.type.clazz);
+
+		  var secondParameter:Parameter = constructor.parameters[1];
+
+		  assertFalse(secondParameter.isOptional);
+		  assertEquals(2, secondParameter.index);
+		  assertEquals(Number, secondParameter.type.clazz);
+
+
+		  var thirdParameter:Parameter = constructor.parameters[2];

-	      assertTrue(thirdParameter.isOptional);
-	      assertEquals(3, thirdParameter.index);
-	      assertEquals(Array, thirdParameter.type.clazz);
-	    }
+		  assertTrue(thirdParameter.isOptional);
+		  assertEquals(3, thirdParameter.index);
+		  assertEquals(Array, thirdParameter.type.clazz);
+		}

 	}
 }


On production, in an embed, I can't click the chat widget during
the voting phase of LOLcaptions.
Clicking a button and then the text field works, so it's some
sort of funky focus issue. Try this.
Unable to duplicate on my local server, so I'll just recheck to see
if this works after the next release.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@815 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/ChatInput.as
+++ src/as/com/threerings/flex/ChatInput.as
@@ -5,7 +5,11 @@

 import flash.events.FocusEvent;

+import flash.text.TextField;
+
 import mx.controls.TextInput;
+
+import com.threerings.flash.TextFieldUtil;

 /**
  * The class name of an image to use as the input prompt.
@@ -53,6 +57,13 @@
         setStyle("backgroundImage", (show && ("" == text)) ? getStyle("prompt") : undefined);
     }

+    override protected function createChildren () :void
+    {
+        super.createChildren();
+
+        TextFieldUtil.setFocusable(TextField(textField));
+    }
+
     override protected function focusInHandler (event :FocusEvent) :void
     {
         var oldValue :Boolean = textField.selectable;


By changing one character, AsUnit's self-test suite runs 33% faster (Timer delay from 1 to 0).

--- as3/src/asunit/framework/TestCase.as
+++ as3/src/asunit/framework/TestCase.as
@@ -108,7 +108,7 @@
 			setName(className.toString());
 			resolveLayoutManager();
 			asyncQueue = [];
-			timer = new Timer(1, 1);
+			timer = new Timer(0, 1);
 			timer.addEventListener(TimerEvent.TIMER, onTick);
 		}


Revert "[Mangui.DemuxHelper] Make probe Level parameter optional"

This reverts commit 3b6ac534dc61f2d9e09b0ed3e15141b1bb25a64b.

--- src/org/mangui/hls/demux/DemuxHelper.as
+++ src/org/mangui/hls/demux/DemuxHelper.as
@@ -26,17 +26,17 @@
              * if mp3_match && codec_mp3 => MP3 demuxer
              * if no codec info in Manifest, use fallback order : AAC/MP3/TS
              */
-            if (ts_match && level && level.codec_h264) {
+            if (ts_match && level.codec_h264) {
                 CONFIG::LOGGING {
                     Log.debug("TS match + H264 signaled in Manifest, use TS demuxer");
                 }
                 return new TSDemuxer(audioselect, progress, complete, videometadata, audioOnly);
-            } else if (aac_match && level && level.codec_aac) {
+            } else if (aac_match && level.codec_aac) {
                 CONFIG::LOGGING {
                     Log.debug("AAC match + AAC signaled in Manifest, use AAC demuxer");
                 }
                 return new AACDemuxer(audioselect, progress, complete, id3tagfound);
-            } else if (mp3_match && level && level.codec_mp3) {
+            } else if (mp3_match && level.codec_mp3) {
                 CONFIG::LOGGING {
                     Log.debug("MP3 match + MP3 signaled in Manifest, use MP3 demuxer");
                 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9270
Author:   clucier@adobe.com
Date:     2009-08-13T15:27:57.150840Z

Log Message:
-----------
Preliminary checkin of the 4+ runtime design layer feature.  Note that this is being committed primarily so that the tooling folks can start playing.  We've yet to integrate spec or PARB feedback
as such QE does not yet need to test.

QE notes: No need to test just yet.
Doc notes: Ditto
Bugs: N/A
Reviewer: Glenn / Paul
Tests run: Checkin
Is noteworthy for integration: Yes, Catalyst/FB may enable feature to begin integration if so desired.  Enable with compiler flag "-enable-runtime-design-layers".

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/ComponentBuilder.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DesignLayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/ValueNodeHandler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/Analyzer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/AnalyzerAdapter.java</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/modules/compiler/src/java/flex2/compiler/mxml/MxmlConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/MxmlScanner.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/init/ValueInitializer.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/LayeredNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/analyzer/SyntaxAnalyzer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/Model.java</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/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/NodeTypeResolver.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/InterfaceCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/DesignLayerNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/dom/SyntaxTreeBuilder.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/DesignLayer.java</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -2790,6 +2790,9 @@
         if (!initialized)
             return;

+        if (layer && !layer.computedVisibility)
+            value = false;
+
         if ($visible == value)
             return;

@@ -2807,17 +2810,41 @@
     //  alpha
     //----------------------------------

+    /**
+     *  @private
+     *  Storage for the alpha property.
+     */
+    private var _alpha:Number = 1.0;
+
     [Bindable("alphaChanged")]
     [Inspectable(defaultValue="1.0", category="General", verbose="1")]

     /**
      *  @private
      */
+    override public function get alpha():Number
+    {
+        // Here we roundtrip alpha in the same manner as the
+        // player (purposely introducing a rounding error).
+        return int(_alpha * 256.0) / 256.0;
+    }
+
+    /**
+     *  @private
+     */
     override public function set alpha(value:Number):void
-    {
-        super.alpha = value;
-
-        dispatchEvent(new Event("alphaChanged"));
+    {
+        if (_alpha != value)
+        {
+            _alpha = value;
+
+            if (layer)
+                value = value * layer.computedAlpha;
+
+            $alpha = value;
+
+            dispatchEvent(new Event("alphaChanged"));
+        }
     }

     //----------------------------------
@@ -2989,12 +3016,76 @@
         super.filters = clonedFilters;
     }

+    //----------------------------------
+    //  layer
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the layer property.
+     */
+    private var _layer:DesignLayer;
+
+    [Inspectable (environment='none')]
+
+    /**
+     *  @copy mx.core.IVisualElement#layer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get layer():DesignLayer
+    {
+        return _layer;
+    }
+
+    /**
+     *  @private
+     */
+    public function set layer(value:DesignLayer):void
+    {
+        if (_layer)
+            _layer.removeEventListener("layerPropertyChange", layer_PropertyChange, false);
+
+        _layer = value;
+
+        if (_layer)
+            _layer.addEventListener("layerPropertyChange", layer_PropertyChange, false, 0, true);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Properties: Display
     //
     //--------------------------------------------------------------------------

+    //----------------------------------
+    //  $alpha
+    //----------------------------------
+
+    /**
+     *  @private
+     *  This property allows access to the Player's native implementation
+     *  of the 'alpha' property, which can be useful since components
+     *  can override 'alpha' and thereby hide the native implementation.
+     *  Note that this "base property" is final and cannot be overridden,
+     *  so you can count on it to reflect what is happening at the player level.
+     */
+    mx_internal final function get $alpha():Number
+    {
+        return super.alpha;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal final function set $alpha(value:Number):void
+    {
+        super.alpha = value;
+    }
+
     //----------------------------------
     //  $parent
     //----------------------------------
@@ -10842,6 +10933,32 @@
             focusObject.visible = false;
     }

+    /**
+     *  @private
+     *  Called when our associated layer parent needs to inform us of
+     *  a change to it's visibility or alpha.
+     */
+    protected function layer_PropertyChange(event:PropertyChangeEvent):void
+    {
+        switch (event.property)
+        {
+            case "visible":
+            {
+                var newValue:Boolean = (event.newValue && _visible);
+                if (newValue != $visible)
+                    $visible = newValue;
+                break;
+            }
+            case "alpha":
+            {
+                var newAlpha:Number = Number(event.newValue) * _alpha;
+                if (newAlpha != $alpha)
+                    $alpha = newAlpha;
+                break;
+            }
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Event handlers: Validation


Transferred from the Adobe Open Source Subversion Repository

Revision: 3623
Author:   chaase@adobe.com
Date:     2008-10-14T15:32:09.651948Z

Log Message:
-----------
Fixes sdk-17028. After the change to the new state model, we would always run applicable transitions at application startup. But we should really skip transitions at startup and wait until the first real transition between named states, not the first change to the default/initial state. This fix disables transitions when going from the start state (null or "") to the first named state.

reviewed by Corey
tests: checkintests and tests/States (1 failure, AddChildApp01, but it fails both with and without my fix)

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -12,25 +12,28 @@
 package mx.core
 {

+import __AS3__.vec.Vector;
+
 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.display.GradientType;
+import flash.display.Graphics;
 import flash.display.InteractiveObject;
 import flash.display.Loader;
 import flash.display.Sprite;
 import flash.display.Stage;
-import flash.display.Graphics;
 import flash.events.Event;
 import flash.events.EventPhase;
 import flash.events.FocusEvent;
 import flash.events.IEventDispatcher;
 import flash.events.KeyboardEvent;
-import flash.geom.Vector3D;
+import flash.geom.Matrix;
 import flash.geom.Matrix3D;
-import flash.geom.Matrix;
+import flash.geom.PerspectiveProjection;
 import flash.geom.Point;
 import flash.geom.Rectangle;
-
+import flash.geom.Transform;
+import flash.geom.Vector3D;
 import flash.text.TextLineMetrics;
 import flash.utils.getQualifiedClassName;

@@ -46,11 +49,13 @@
 import mx.events.FlexEvent;
 import mx.events.MoveEvent;
 import mx.events.PropertyChangeEvent;
+import mx.events.PropertyChangeEventKind;
 import mx.events.ResizeEvent;
 import mx.events.StateChangeEvent;
 import mx.events.ValidationResultEvent;
 import mx.filters.BaseFilter;
 import mx.filters.IBitmapFilter;
+import mx.geom.CompoundTransform;
 import mx.geom.Transform;
 import mx.graphics.RoundedRectangle;
 import mx.managers.CursorManager;
@@ -81,11 +86,6 @@
 import mx.utils.StringUtil;
 import mx.validators.IValidatorListener;
 import mx.validators.ValidationResult;
-import __AS3__.vec.Vector;
-import flash.geom.Transform;
-import mx.events.PropertyChangeEventKind;
-import mx.geom.CompoundTransform;
-import flash.geom.PerspectiveProjection;

 use namespace mx_internal;

@@ -7477,8 +7477,13 @@
             !(isBaseState(stateName) && isBaseState(currentState)))
         {
             requestedCurrentState = stateName;
-            playStateTransition = playTransition;
-
+            // Don't play transition if we're just getting started
+            // In Flex4, there is no "base state", so if isBaseState() is true
+            // then we're just going into our first real state
+            playStateTransition =
+                (this is IStateClient2) && isBaseState(currentState) ?
+                false :
+                playTransition;
             if (initialized)
             {
                 commitCurrentState();


Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.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/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.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/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.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/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.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/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.as</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/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/framework/src/mx/core/UITextField.as
+++ frameworks/projects/framework/src/mx/core/UITextField.as
@@ -165,16 +165,6 @@
         The width and height of the TextField are 4 pixels greater than
         the textWidth and textHeight.

-    *
-
-    *  @langversion 3.0
-
-    *  @playerversion Flash 9
-
-    *  @playerversion AIR 1.1
-
-    *  @productversion Flex 3
-
     */

     //--------------------------------------------------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 11751
Author:   clucier@adobe.com
Date:     2009-11-12T22:28:38.657563Z

Log Message:
-----------
Setting a transform matrix would always invalidate and cause an update.  If you were setting a transform matrix in upateDisplayList, you'd end up in a continuous update loop.  Added logic to early exit (and not invalidate) when the newly set matrix is identical to the existing.

QE notes: None
Doc notes: None
Bugs: SDK-22807
Reviewer: Evtim
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.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/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/utils/MatrixUtil.as
+++ frameworks/projects/framework/src/mx/utils/MatrixUtil.as
@@ -1232,6 +1232,66 @@
     }

     /**
+     *  Determine if two Matrix instances are equal.
+     *
+     *  @return true if the matrices are equal.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function isEqual(m1:Matrix, m2:Matrix):Boolean
+    {
+        return ((m1 && m2 &&
+            m1.a == m2.a &&
+            m1.b == m2.b &&
+            m1.c == m2.c &&
+            m1.d == m2.d &&
+            m1.tx == m2.tx &&
+            m1.ty == m2.ty) ||
+            (!m1 && !m2));
+    }
+
+    /**
+     *  Determine if two Matrix3D instances are equal.
+     *
+     *  @return true if the matrices are equal.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function isEqual3D(m1:Matrix3D, m2:Matrix3D):Boolean
+    {
+        if (m1 && m2 && m1.rawData.length == m2.rawData.length)
+        {
+            var r1:Vector.<Number> = m1.rawData;
+            var r2:Vector.<Number> = m2.rawData;
+
+            return (r1[0] == r2[0] &&
+                    r1[1] == r2[1] &&
+                    r1[2] == r2[2] &&
+                    r1[3] == r2[3] &&
+                    r1[4] == r2[4] &&
+                    r1[5] == r2[5] &&
+                    r1[6] == r2[6] &&
+                    r1[7] == r2[7] &&
+                    r1[8] == r2[8] &&
+                    r1[9] == r2[9] &&
+                    r1[10] == r2[10] &&
+                    r1[11] == r2[11] &&
+                    r1[12] == r2[12] &&
+                    r1[13] == r2[13] &&
+                    r1[14] == r2[14] &&
+                    r1[15] == r2[15]);
+        }
+
+        return (!m1 && !m2);
+    }
+
+    /**
      *  Calculates (x,y) such as to satisfy the linear system:
      *  | a * x + c * y = m
      *  | b * x + d * y = n


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

--- frameworks/projects/mx/src/mx/containers/DividerState.as
+++ frameworks/projects/mx/src/mx/containers/DividerState.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.containers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 9399
Author:   aharui@adobe.com
Date:     2009-08-19T20:39:10.836192Z

Log Message:
-----------
Check in prototypes of ControlBars in Panel and Application, Spark Containers in Halo Navigators, Halo ViewStack in Spark ButtonBar.  APIs should match spec but are subject to change from PARB.  Skins are subject to tweaking after XD review

QE Notes: The following tests will fail and need updating:
gumbo/containers/Panel/Properties/Panel_Properties_position Panel_Properties_rotate
apollo/spark/components/Window/properties/window_properties_titleIcon_tests titleIcon_test8

Doc Notes: None
Bugs: None
Reviewer: Darrell, Glenn, Ryan
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/components/Application, gumbo/components/ButtonBar, gumbo/containers/Panel, apollo/gumbo/spark/Window, containers/ViewStack, containers/Accordion,

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/ComponentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.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/spark/src/spark/components/Application.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/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatable.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</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/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.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/wireframe/src/spark/skins/wireframe/PanelSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>

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

--- frameworks/projects/mx/src/mx/containers/TabNavigator.as
+++ frameworks/projects/mx/src/mx/containers/TabNavigator.as
@@ -13,9 +13,9 @@
 {

 import flash.display.DisplayObject;
-import flash.events.Event;
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
+
 import mx.controls.Button;
 import mx.controls.TabBar;
 import mx.core.Container;
@@ -27,7 +27,6 @@
 import mx.core.IUIComponent;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
-import mx.events.ItemClickEvent;
 import mx.managers.IFocusManagerComponent;
 import mx.styles.StyleProxy;

@@ -657,7 +656,7 @@
         // We'll be called again later (instantiateSelectedChild calls
         // invalidateSize), and we don't want to load values into the
         // cache until we're fully initialized.  (bug 102639)
-        if (selectedChild && Container(selectedChild).numChildrenCreated == -1)
+        if (selectedChild && selectedChild.deferredContentCreated == false)
             return;

         // Don't remember sizes if we don't have any children


Transferred from the Adobe Open Source Subversion Repository

Revision: 20359
Author:   aharui@adobe.com
Date:     2011-02-17T22:44:43.090953Z

Log Message:
-----------
Set tabEnabled=false on buttons in skins.  Otherwise, when added to a new NativeWindow and nothing has focus, they will momentarily get focus when clicked on, before the FocusManager gets to run.  The FocusManager will later run and assign focus to the component causing the button to dispatch a focusOut event that can close dropdowns and run validators.

QE notes: none
Doc notes:  none
Bugs: SDK-29515
Reviewer: Ryan
Tests run: checkintests mustella cyclone full run
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/HSliderSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/HSliderSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/VSliderSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/VScrollBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/VSliderSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/VScrollBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/SpinnerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/SpinnerSkin.mxml</path>

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

--- frameworks/projects/mx/src/mx/controls/NumericStepper.as
+++ frameworks/projects/mx/src/mx/controls/NumericStepper.as
@@ -1228,6 +1228,7 @@
             nextButton.disabledIconName = "";

             nextButton.focusEnabled = false;
+            nextButton.tabEnabled = false;
             nextButton.autoRepeat = true;

             nextButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
@@ -1251,6 +1252,7 @@
             prevButton.disabledIconName = "";

             prevButton.focusEnabled = false;
+            prevButton.tabEnabled = false;
             prevButton.autoRepeat = true;

             prevButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);


Transferred from the Adobe Open Source Subversion Repository

Revision: 13306
Author:   cframpto@adobe.com
Date:     2010-01-06T16:34:04.377095Z

Log Message:
-----------
TLF ties activation and focus together.  If a Flex PopUp is created it is possible to get deactivate/activate events without any focus events.  If we have focus when we are activated, the selection state should be SelectionFormatState.FOCUSED not SelectionFormatState.UNFOCUSED since there might not be a follow on focusIn event.

Note that if a non-modal popop is displayed while the RET has focus, the RET is inactive but it is still possible to type into it.  The RET will not have an insertion caret until the popup is removed and the RET becomes active again.

QE notes:
Doc notes:
Bugs: SDK-24886
Reviewer: Alex
Tests run: checkintests, TextArea
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -667,6 +667,20 @@
             return;

         super.activateHandler(event);
+
+        // TLF ties activation and focus together.  If a Flex PopUp is created
+        // it is possible to get deactivate/activate events without any
+        // focus events.  If we have focus when we are activated, the selection
+        // state should be SelectionFormatState.FOCUSED not
+        // SelectionFormatState.UNFOCUSED since there might not be a follow on
+        // focusIn event.
+        if (editingMode != EditingMode.READ_ONLY &&
+            textDisplay.getFocus() == textDisplay)
+        {
+            var im:SelectionManager = SelectionManager(beginInteraction());
+            im.setFocus();
+            endInteraction();
+       }
     }

     /**