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

--- frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 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.channels
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 9213
Author:   jszeto@adobe.com
Date:     2009-08-11T00:29:10.884707Z

Log Message:
-----------
Adding missing ASDoc comments to GraphicElement

QE notes: None
Doc notes: Review ASDoc comment additions
Bugs: FLEXDOCS-531
Reviewer: none
Tests run: none
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -450,7 +450,10 @@
     [Inspectable(category="General", enumeration="add,alpha,darken,difference,erase,hardlight,invert,layer,lighten,multiply,normal,subtract,screen,overlay", defaultValue="normal")]

     /**
-     *  @inheritDoc
+     *  A value from the BlendMode class that specifies which blend mode to use.
+     *
+     *  @see flash.display.DisplayObject#blendMode
+     *  @see flash.display.BlendMode
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -595,7 +598,10 @@
     [Inspectable(category="General")]

     /**
-     *  @inheritDoc
+     *  Number that specifies the explicit height of the component,
+     *  in pixels, in the component's coordinates.
+     *
+     *  @see mx.core.UIComponent#explicitHeight
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -630,7 +636,11 @@
     //----------------------------------

     /**
-     *  @inheritDoc
+     *  The maximum recommended height of the component to be considered
+     *  by the parent during layout. This value is in the
+     *  component's coordinates, in pixels.
+     *
+     *  @see mx.core.UIComponent#explicitMaxHeight
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -645,7 +655,11 @@
     //----------------------------------

     /**
-     *  @inheritDoc
+     *  The maximum recommended width of the component to be considered
+     *  by the parent during layout. This value is in the
+     *  component's coordinates, in pixels.
+     *
+     *  @see mx.core.UIComponent#explicitMaxWidth
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -660,7 +674,11 @@
     //----------------------------------

     /**
-     *  @inheritDoc
+     *  The minimum recommended height of the component to be considered
+     *  by the parent during layout. This value is in the
+     *  component's coordinates, in pixels.
+     *
+     *  @see mx.core.UIComponent#explicitMinHeight
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -674,8 +692,12 @@
     //  explicitMinWidth
     //----------------------------------

-    /**
-     *  @inheritDoc
+    /**
+     *  The minimum recommended width of the component to be considered
+     *  by the parent during layout. This value is in the
+     *  component's coordinates, in pixels.
+     *
+     *  @see mx.core.UIComponent#explicitMinWidth
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -698,7 +720,10 @@
     [Inspectable(category="General")]

     /**
-     *  @inheritDoc
+     *  Number that specifies the explicit width of the component,
+     *  in pixels, in the component's coordinates.
+     *
+     *  @see mx.core.UIComponent#explicitWidth
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -953,8 +978,15 @@
     [Inspectable(category="General")]

     /**
-     *  @inheritDoc
-     *
+     *  The calling display object is masked by the specified mask object.
+     *  If, the mask display object is not on the display list, it will be added to the display list
+     *  as a child of the displayObject. The mask object itself is not drawn.
+     *  Set mask to null to remove the mask.
+     *
+     *  To use another GraphicElement as a mask, wrap the GraphicElement in a Group or other container.
+     *
+     *  @see flash.display.DisplayObject#mask
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -1030,7 +1062,46 @@
     [Inspectable(category="General", enumeration="clip,alpha", defaultValue="clip")]

     /**
-     *  @inheritDoc
+     *
The maskType defines how the mask is applied to the GraphicElement.
+     *
+     *
The possible values are MaskType.CLIP and MaskType.ALPHA.
+     *
+     *
Clip Masking

+     *
+     *
When masking in clip mode, a clipping masks is reduced to 1-bit.  This means that a mask will
+     *  not affect the opacity of a pixel in the source content; it either leaves the value unmodified,
+     *  if the corresponding pixel in the mask is has a non-zero alpha value, or makes it fully
+     *  transparent, if the mask pixel value has an alpha value of zero.

+     *
+     *
When clip masking is used, only the actual path and shape vectors and fills defined by the
+     *  mask are used to determine the effect on the source content.  strokes and bitmap filters
+     *  defined on the mask are ignored.  Any filled region in the mask is considered filled, and renders
+     *  the source content.  The type and parameters of the fill is irrelevant;  a solid color fill,
+     *  gradient fill, or bitmap fill in a mask will all render the underlying source content, regardless
+     *  of the alpha values of the mask fill.

+     *
+     *
BitmapGraphics are treated as bitmap filled rectangles when used in a clipping mask.  As a
+     *  result, the alpha channel of the source bitmap is irrelevant when part of a mask -- the bitmap
+     *  affects the mask in the same manner as solid filled rectangle of equivalent dimensions.

+     *
+     *
Alpha Masking

+     *
+     *
In alpha mode, the opacity of each pixel in the source content is multiplied by the opacity
+     *  of the corresponding region of the mask.  i.e., a pixel in the source content with an opacity of
+     * 1 that is masked by a region of opacity of .5 will have a resulting opacity of .5.  A source pixel
+     * with an opacity of .8 masked by a region with opacity of .5 will have a resulting opacity of .4.

+     *
+     *
Conceptually, Alpha masking is equivalent to rendering the transformed mask and source content
+     *  into separate RGBA surfaces, and multiplying the alpha channel of the mask content into the alpha
+     *  channel of the source content.  All of the mask content is rendered into its surface before
+     *  compositing into the source content's surface. As a result, all FXG features, such as strokes,
+     *  bitmap filters, and fill opacity will affect the final composited content.

+     *
+     *
When in alpha mode, the alpha channel of any bitmap data is composited normally into the mask
+     *  alpha channel, and will affect the final rendered content. This holds true for both BitmapGraphics
+     *  and bitmap filled shapes and paths.

+     *
+     *  @default MaskType.CLIP
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -1878,7 +1949,15 @@
         layoutFeatures.transformAround(transformCenter,scale,rotation,translation,postLayoutScale,postLayoutRotation,postLayoutTranslation);
         invalidateTransform(previous != needsDisplayObject);
     }
-
+
+    /**
+     *  FIXME (chaase) : FLEXDOCS-1031
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     public function transformPointToParent(transformCenter:Vector3D,position:Vector3D,postLayoutPosition:Vector3D):void
     {
         if(layoutFeatures != null)
@@ -2656,6 +2735,16 @@
         return element is GraphicElement && !_alwaysCreateDisplayObject && !needsDisplayObject;
     }

+    /**
+     *  The actual DisplayObject that is drawn into by the GraphicElement. Typically this is
+     *  equivalent to the displayObject property. Subclasses should perform drawing commands on
+     *  this property instead of on displayObject.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     protected function get drawnDisplayObject():DisplayObject
     {
         // _drawnDisplayObject is non-null if we needed to create a mask
@@ -3941,6 +4030,15 @@
     // FIXME (egeorgie): return rectangle instead so that the function can
     // correctly indicate the left, right, top and bottom extents. Right
     // now we assume they are the same on both sides.
+    /**
+     *  TODO
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    // FIXME (egeorgie) : Needs ASDoc FLEXDOCS-1032
     protected function getStrokeExtents(postLayoutTransform:Boolean = true):Point
     {
         return _strokeExtents;


Transferred from the Adobe Open Source Subversion Repository

Revision: 22720
Author:   chiedozi@adobe.com
Date:     2011-09-23T20:24:11.099734Z

Log Message:
-----------
FlipViewTransition now clips the start and end views during the transition

QE notes:
Doc notes:
Bugs: SDK-31620
Reviewer: Evtim
Tests run: checkintests-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
@@ -309,6 +309,19 @@
         actionBarTransitionDirection = direction;
         super.prepareForPlay();

+        // Enable clipping on the contentGroups of the views
+        if (startView && startView.contentGroup)
+        {
+            startViewProps.clipAndEnableScrolling = startView.contentGroup.clipAndEnableScrolling;
+            startView.contentGroup.clipAndEnableScrolling = true;
+        }
+
+        if (endView && endView.contentGroup)
+        {
+            endViewProps.clipAndEnableScrolling = endView.contentGroup.clipAndEnableScrolling;
+            endView.contentGroup.clipAndEnableScrolling = true;
+        }
+
         // Work-around for SDK-29118
         if (dpiScale != 1 && transitionGroup)
             applyDPIScaleToElements(transitionGroup, dpiScale);
@@ -855,6 +868,13 @@
         if (dpiScale != 1 && transitionGroup)
             applyDPIScaleToElements(transitionGroup, 1);

+        // Clean up clipping on the contentGroups of the views
+        if (startView && startView.contentGroup)
+            startView.contentGroup.clipAndEnableScrolling = startViewProps.clipAndEnableScrolling;
+
+        if (endView && endView.contentGroup)
+            endView.contentGroup.clipAndEnableScrolling = endViewProps.clipAndEnableScrolling;
+
         if (!consolidatedTransition && transitionGroup)
         {
             if (endView)


Transferred from the Adobe Open Source Subversion Repository

Revision: 21307
Author:   tkraikit@adobe.com
Date:     2011-05-27T15:37:15.926799Z

Log Message:
-----------
SDK-30483: avoid creating a targetless effect for the action bar component of a view transition

QE notes: -
Doc notes: -
Bugs: SDK-30483
Reviewer: Chiedo
Tests run: checkintests, cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
@@ -945,6 +945,10 @@
         if (!verticalTransition && cachedActionGroup)
             fadeOutTargets.push(cachedActionGroup.displayObject);

+        // if there are no targets don't create an effect; just return null
+        if (fadeOutTargets.length == 0 && fadeInTargets.length == 0)
+            return null;
+
         // Fade out action and navigation content
         var fadeOut:Animate = new Animate();
         vector = new Vector.<MotionPath>();


Transferred from the Adobe Open Source Subversion Repository

Revision: 18914
Author:   jasonsj@adobe.com
Date:     2010-12-01T21:03:45.402847Z

Log Message:
-----------
TextField textHeight and textWidth return different values when on/off stage and using scaling. When not scaling, these properties return consistent values on/off stage. This commit refactors StyleableTextField measuedWidth and measuredHeight to call measuredTextSize():Point which uses removes, measures, then adds the text field back to the display list. This fixes several issues around text positioning in skins when the stage is scaled.

QE notes: When scaling and on the stage, additional Event.ADDED and Event.REMOVED will be dispatched for StyleableTextField when measuring.
Doc notes:
Bugs:
Reviewer: gruehle, rfrishbe
Tests run: checkintests
Is noteworthy for integration: Yes

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/HSliderDataTip.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/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.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/TextSkinBase.as</path>

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

--- frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
@@ -351,7 +351,7 @@
 /**
  *  Additional vertical space between lines of text.
  *
- *
The default value is 0.

+ *
The default value is 2.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1


Transferred from the Adobe Open Source Subversion Repository

Revision: 6127
Author:   aharui@adobe.com
Date:     2009-04-10T15:24:44.711126Z

Log Message:
-----------
EmbeddedFonts in Modules for TLF.

Requires build 411 of TLF (to be checked in next)

QE Notes: None
Doc Notes: Yes.  New API on DownloadProgressBar
Bugs:
Reviewer: gordon
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/build.xml</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/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/build.xml</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/sparkskins/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText2.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/airframework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex/build.xml</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/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.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/flex4/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
@@ -117,7 +117,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="fontLookup", type="String", enumeration="device,embeddedCFF", inherit="yes")]
+[Style(name="fontLookup", type="String", enumeration="device,embeddedCFF,auto", inherit="yes")]

 /**
  *  @copy flashx.textLayout.formats.ITextLayoutFormat#fontSize


added code to prevent using the proposed combo box "fix" when not
using the debug player.

Change-Id: I518af3a053cb660080088de0304058f41964d94d
Signed-off-by: adufilie <71f9562d51201e38fec5e9a967c9dca8b265f770@gmail.com>

--- WeaveUI/src/org/oicweave/ui/CustomComboBox.as
+++ WeaveUI/src/org/oicweave/ui/CustomComboBox.as
@@ -21,6 +21,9 @@
 {
 	import mx.collections.CursorBookmark;
 	import mx.controls.ComboBox;
+
+	import org.oicweave.core.SessionManager;
+	import org.oicweave.core.StageUtils;

 	/**
 	 * BUG FIX: set dataProvider() now updates drop-down list.
@@ -42,11 +45,16 @@
 		 * @param value The new dataProvider.
 		 */
 		override public function set dataProvider(value:Object):void
-		{
-			// The dropdown will not be properly reset unless it is currently shown.
-			validateNow();
-			downArrowButton_buttonDownHandler(null);
-
+		{
+			// TEMPORARY SOLUTION
+			// Sometimes this code crashes with a null reference error.
+			// So, until this is fully debugged, only attempt this fix when running the debug player.
+			if (SessionManager.runningDebugFlashPlayer)
+			{
+				// The dropdown will not be properly reset unless it is currently shown.
+				validateNow();
+				downArrowButton_buttonDownHandler(null);
+			}
 			super.dataProvider = value;
 		}


small cancel tweak

small cancel tweak

--- flex_src/src/S3Uploader.as
+++ flex_src/src/S3Uploader.as
@@ -31,7 +31,7 @@

 		private function registerCallbacks():void
 		{
-			if (ExternalInterface.available)
+			if(ExternalInterface.available)
 			{
 				ExternalInterface.addCallback("init", init);
 				ExternalInterface.addCallback("start", start);
@@ -100,6 +100,7 @@

 						queue[i].reference.cancel();
 						queue.splice(i, 1);
+						break;
 					}
 				}
 			}


Transferred from the Adobe Open Source Subversion Repository

Revision: 9419
Author:   aharui@adobe.com
Date:     2009-08-20T16:19:04.456854Z

Log Message:
-----------
2nd attempt to 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,
states/Integration/TabNavApp, states/Reparent

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" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorChild.as" copyfrom-rev="9399" 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" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatable.as" copyfrom-rev="9399" 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" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as" copyfrom-rev="9399" 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" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as" copyfrom-rev="9399" 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@1267525 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/containers/Accordion.as
+++ frameworks/projects/mx/src/mx/containers/Accordion.as
@@ -13,14 +13,13 @@
 {

 import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
 import flash.events.Event;
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.geom.Rectangle;
 import flash.ui.Keyboard;
-import flash.utils.getTimer;
+
 import mx.automation.IAutomationObject;
 import mx.containers.accordionClasses.AccordionHeader;
 import mx.controls.Button;
@@ -31,10 +30,10 @@
 import mx.core.EdgeMetrics;
 import mx.core.FlexVersion;
 import mx.core.IDataRenderer;
+import mx.core.IDeferredContentOwner;
 import mx.core.IFactory;
-import mx.managers.IFocusManagerComponent;
-import mx.managers.IHistoryManagerClient;
 import mx.core.IInvalidating;
+import mx.core.INavigatorContent;
 import mx.core.IUIComponent;
 import mx.core.ScrollPolicy;
 import mx.core.UIComponent;
@@ -46,9 +45,10 @@
 import mx.events.IndexChangedEvent;
 import mx.geom.RoundedRectangle;
 import mx.managers.HistoryManager;
+import mx.managers.IFocusManagerComponent;
+import mx.managers.IHistoryManagerClient;
+import mx.styles.CSSStyleDeclaration;
 import mx.styles.StyleManager;
-import mx.styles.CSSStyleDeclaration;
-import mx.styles.StyleProxy;

 use namespace mx_internal;

@@ -962,18 +962,18 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function get selectedChild():Container
+    public function get selectedChild():INavigatorContent
     {
         if (selectedIndex == -1)
             return null;

-        return Container(getChildAt(selectedIndex));
-    }
-
-    /**
-     *  @private
-     */
-    public function set selectedChild(value:Container):void
+        return INavigatorContent(getChildAt(selectedIndex));
+    }
+
+    /**
+     *  @private
+     */
+    public function set selectedChild(value:INavigatorContent):void
     {
         var newIndex:int = getChildIndex(DisplayObject(value));

@@ -1305,7 +1305,7 @@
         // cache until we're fully initialized.  (bug 102639)
         // This check was moved from the beginning of this function to
         // here to fix bugs 103665/104213.
-        if (selectedChild && Container(selectedChild).numChildrenCreated == -1)
+        if (selectedChild && selectedChild.deferredContentCreated)
             return;

         // Don't remember sizes if we don't have any children
@@ -1450,7 +1450,7 @@
             var n:int = numChildren;
             for (var i:int = 0; i < n; i++)
             {
-                Container(getChildAt(i)).createComponentsFromDescriptors();
+                IDeferredContentOwner(getChildAt(i)).createDeferredContent();
             }
         }
     }
@@ -1572,7 +1572,7 @@
         overlayColor = color;
         overlayTargetArea = targetArea;

-        if (selectedChild && selectedChild.numChildrenCreated == -1) // No children have been created
+        if (selectedChild && selectedChild.deferredContentCreated == false) // No children have been created
         {
             // Wait for the childrenCreated event before creating the overlay
             selectedChild.addEventListener(FlexEvent.INITIALIZE,
@@ -1752,20 +1752,20 @@

         IDataRenderer(header).data = content;

-        if (content is Container)
-        {
-            var contentContainer:Container = Container(content);
+        if (content is INavigatorContent)
+        {
+            var contentContainer:INavigatorContent = INavigatorContent(content);

             header.label = contentContainer.label;
             if (contentContainer.icon)
                 header.setStyle("icon", contentContainer.icon);

             // If the child has a toolTip, transfer it to the header.
-            var toolTip:String = contentContainer.toolTip;
+            var toolTip:String = (contentContainer as UIComponent).toolTip;
             if (toolTip && toolTip != "")
             {
                 header.toolTip = toolTip;
-                contentContainer.toolTip = null;
+                (contentContainer as UIComponent).toolTip = null;
             }
         }

@@ -1841,7 +1841,7 @@
         var header:Button = Button(event.currentTarget);
         var oldIndex:int = selectedIndex;
         // content is placed onto the button so we have to access it via []
-        selectedChild = Container(IDataRenderer(header).data);
+        selectedChild = INavigatorContent(IDataRenderer(header).data);
         var newIndex:int = selectedIndex;
         if (oldIndex != newIndex)
             dispatchChangeEvent(oldIndex, newIndex, event);
@@ -1937,13 +1937,13 @@
         {
             // Need to set the new index to be visible here
             // in order for effects to work.
-            Container(getChildAt(newIndex)).setVisible(true);
+            IUIComponent(getChildAt(newIndex)).setVisible(true);

             // Now that the effects have been triggered, we can hide the
             // current view until it is properly sized and positioned below.
-            Container(getChildAt(newIndex)).setVisible(false, true);
+            IUIComponent(getChildAt(newIndex)).setVisible(false, true);
             if (oldIndex != -1)
-                Container(getChildAt(oldIndex)).setVisible(false);
+                IUIComponent(getChildAt(oldIndex)).setVisible(false);

             instantiateChild(selectedChild);
         }
@@ -1959,7 +1959,7 @@
     /**
      *  @private
      */
-    private function instantiateChild(child:Container):void
+    private function instantiateChild(child:INavigatorContent):void
     {
         // fix for bug#137430
         // when the selectedChild index is -1 (invalid value due to any reason)
@@ -1970,8 +1970,8 @@

         // Performance optimization: don't call createComponents if we know
         // that createComponents has already been called.
-        if (child && child.numChildrenCreated == -1)
-            child.createComponentsFromDescriptors();
+        if (child && child.deferredContentCreated == false)
+            child.createDeferredContent();

         // Do the initial measurement/layout pass for the newly-instantiated
         // descendants.
@@ -2028,14 +2028,14 @@
         // EffectManager might try to play another effect that animates the same
         // properties.
         if (oldSelectedIndex != -1)
-            Container(getChildAt(oldSelectedIndex)).tweeningProperties = ["x", "y", "width", "height"];
-        Container(getChildAt(newSelectedIndex)).tweeningProperties = ["x", "y", "width", "height"];
+            IUIComponent(getChildAt(oldSelectedIndex)).tweeningProperties = ["x", "y", "width", "height"];
+        IUIComponent(getChildAt(newSelectedIndex)).tweeningProperties = ["x", "y", "width", "height"];

         // If the content of the new child hasn't been created yet, set the new child
         // to the content width/height. This way any background color will show up
         // properly during the animation.
-        var newSelectedChild:Container = Container(getChildAt(newSelectedIndex));
-        if (newSelectedChild.numChildren == 0)
+        var newSelectedChild:IDeferredContentOwner = IDeferredContentOwner(getChildAt(newSelectedIndex));
+        if (newSelectedChild.deferredContentCreated == false)
         {
             var paddingLeft:Number = getStyle("paddingLeft");
             var contentX:Number = borderMetrics.left + (paddingLeft > 0 ? paddingLeft : 0);
@@ -2085,7 +2085,7 @@
         for (var i:int = 0; i < n; i++)
         {
             var header:Button = getHeaderAt(i);
-            var content:Container = Container(getChildAt(i));
+            var content:UIComponent = UIComponent(getChildAt(i));

             header.$y = y;
             y += header.height;
@@ -2130,7 +2130,7 @@
         var localContentHeight:Number = calcContentHeight();

         var y:Number = vm.top;
-        var content:Container;
+        var content:UIComponent;

         var n:int = numChildren;
         for (var i:int = 0; i < n; i++)
@@ -2141,7 +2141,7 @@

             if (i == selectedIndex)
             {
-                content = Container(getChildAt(i));
+                content = UIComponent(getChildAt(i));
                 content.cacheAsBitmap = false;
                 content.scrollRect = null;
                 content.visible = true;
@@ -2152,7 +2152,7 @@

         if (oldSelectedIndex != -1)
         {
-            content = Container(getChildAt(oldSelectedIndex));
+            content = UIComponent(getChildAt(oldSelectedIndex));
             content.cacheAsBitmap = false;
             content.scrollRect = null;
             content.visible = false;
@@ -2170,7 +2170,7 @@

         UIComponent.resumeBackgroundProcessing();

-        Container(getChildAt(selectedIndex)).tweeningProperties = null;
+        UIComponent(getChildAt(selectedIndex)).tweeningProperties = null;

         // If we interrupted a Dissolve effect, restart it here
         if (currentDissolveEffect)
@@ -2425,7 +2425,7 @@

                 // if something's selected, instantiate it
                 if (newIndex != -1)
-                    instantiateChild(Container(getChildAt(newIndex)));
+                    instantiateChild(INavigatorContent(getChildAt(newIndex)));
             }
             else
             {
@@ -2435,7 +2435,7 @@
                 // newIndex + 1 because currently that's what the index
                 // of the child is (SDK-12622) since this one isn't
                 // actually removed from the display list yet
-                instantiateChild(Container(getChildAt(newIndex+1)));
+                instantiateChild(INavigatorContent(getChildAt(newIndex+1)));
             }

             // Select the new selected index header.


Transferred from the Adobe Open Source Subversion Repository

Revision: 3257
Author:   jimurphy@adobe.com
Date:     2008-09-18T18:16:26.838722Z

Log Message:
-----------
-Merged 3.0.X revisions 3232,3236,3238,3244 -> trunk
-integrated:
 Player build d604
 flex-messaging-common.jar 4.0.0.3256

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Install Flash Player 10 UB.dmg</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 ActiveX.exe</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/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults-2.0.0.css</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults-2.0.1.css</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/in/player/10/lnx/flashplayer.tar.gz</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/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/install_flash_player_10_linux.tar.gz</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/frameworks/projects/framework/src/mx/core/FlexModuleFactory.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/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Flash Player.app.zip</path>

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

--- frameworks/projects/mx/src/mx/controls/PopUpButton.as
+++ frameworks/projects/mx/src/mx/controls/PopUpButton.as
@@ -12,6 +12,7 @@
 package mx.controls
 {

+import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;
 import flash.events.FocusEvent;
@@ -32,11 +33,13 @@
 import mx.core.mx_internal;
 import mx.effects.Tween;
 import mx.events.DropdownEvent;
+import mx.events.InterManagerRequest;
 import mx.events.ListEvent;
 import mx.events.MenuEvent;
 import mx.events.FlexMouseEvent;
 import mx.events.SandboxMouseEvent;
 import mx.managers.IFocusManagerComponent;
+import mx.managers.ISystemManager;
 import mx.managers.PopUpManager;
 import mx.styles.ISimpleStyleClient;

@@ -732,7 +735,21 @@
         var endY:Number;
         var easingFunction:Function;
         var duration:Number;
-
+        var sm:ISystemManager = systemManager.topLevelSystemManager;
+        var sbRoot:DisplayObject = sm.getSandboxRoot();
+        var screen:Rectangle;
+
+        if (sm != sbRoot)
+        {
+            var request:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,
+                                    false, false,
+                                    "getVisibleApplicationRect");
+            sbRoot.dispatchEvent(request);
+            screen = Rectangle(request.value);
+        }
+        else
+            screen = sm.getVisibleApplicationRect();
+
         if (show)
         {
             if (getPopUp() == null)
@@ -746,9 +763,8 @@
             else
                 PopUpManager.bringToFront(_popUp);

-            point = _popUp.parent.globalToLocal(point);
-
-            if (point.y + _popUp.height > screen.height && point.y > (height + _popUp.height))
+            if (point.y + _popUp.height > screen.bottom &&
+                point.y > (screen.top + height + _popUp.height))
             {
                 // PopUp will go below the bottom of the stage
                 // and be clipped. Instead, have it grow up.
@@ -760,8 +776,9 @@
                 initY = _popUp.height;
             }

-            point.x = Math.min( point.x, screen.width - _popUp.getExplicitOrMeasuredWidth());
+            point.x = Math.min( point.x, screen.right - _popUp.getExplicitOrMeasuredWidth());
             point.x = Math.max( point.x, 0);
+            point = _popUp.parent.globalToLocal(point);
             if (_popUp.x != point.x || _popUp.y != point.y)
                 _popUp.move(point.x, point.y);

@@ -785,8 +802,8 @@

             point = _popUp.parent.globalToLocal(point);

-            endY = (point.y + _popUp.height > screen.height &&
-                               point.y > (height + _popUp.height)
+            endY = (point.y + _popUp.height > screen.bottom &&
+                               point.y > (screen.top + height + _popUp.height)
                                ? -_popUp.height - 2
                                : _popUp.height + 2);
             initY = 0;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/mx/src/mx/controls/PopUpButton.as
+++ frameworks/projects/mx/src/mx/controls/PopUpButton.as
@@ -1231,7 +1231,7 @@
     {
         //we don't want to close the popUp if we're just hiding
         //a submenu
-        if (event.menu != Menu(_popUp).mx_internal::getRootMenu())
+        if (event.menu != Menu(_popUp).getRootMenu())
         {
             return;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6609
Author:   gruehle@adobe.com
Date:     2009-05-04T22:47:31.285324Z

Log Message:
-----------
Add theme attribute to theme-specific style metadata.

Example of a halo-specific style:
[Style(name="cornerRadius", type="Number", format="Length", inherit="no", theme="halo")]

Example of a spark-specific style:
[Style(name="baseColor", type="uint", format="Color", inherit="yes", theme="spark")]

Style metadata without a theme attribute is theme-agnostic, and works with either spark or halo.

Bugs: SDK-20606

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FillStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.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/framework/src/mx/controls/NumericStepper.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/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.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/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.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/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.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/frameworks/projects/framework/src/mx/styles/metadata/BarColorStyle.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/CheckBox.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/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/IconColorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.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/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SelectedFillColorsStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.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/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/mx/src/mx/controls/RadioButton.as
+++ frameworks/projects/mx/src/mx/controls/RadioButton.as
@@ -44,7 +44,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="symbolColor", type="uint", format="Color", inherit="yes")]
+[Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark")]

 //--------------------------------------
 //  Excluded APIs


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/events/MetadataEvent.as
+++ frameworks/projects/mx/src/mx/events/MetadataEvent.as
@@ -0,0 +1,202 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.events
+{
+
+import flash.events.Event;
+import mx.core.mx_internal;
+
+/**
+ *  The MetadataEvent class defines the event type for metadata and cue point events.
+ *  These events are used primarily by the VideoDisplay control.
+ *
+ *  @see mx.controls.VideoDisplay
+ */
+public class MetadataEvent extends Event
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * The MetadataEvent.METADATA_RECEIVED constant defines the value of the
+     * type property for a metadataReceived event.
+     *
+     *
This event has the following properties:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false;
+     *        there is no default behavior to cancel.

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
info	An object describing the FLV
+     *       file, including any cue points. This property contains the same information
+     *       as the VideoDisplay.metadata property.
+     *       See the VideoDisplay.metadata property for more information.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
vp	The index of the VideoPlayer object.

+     *

+     *
+     * @eventType metadataReceived
+     */
+    public static const METADATA_RECEIVED:String = "metadataReceived";
+
+    /**
+     *  The MetadataEvent.CUE_POINT constant defines the value of the
+     *  type property of the event object for a cuePoint event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
info	The index of the cue point
+     *       in the VideoDisplay.cuePoint Array.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *

+     *
+     *  @eventType cuePoint
+     */
+    public static const CUE_POINT:String = "cuePoint";
+
+    /**
+     *  @private
+     *  Cue Point type constant.  MetadataEvent.info.type
+     *  value for Navigation cue points embedded in FLV.
+     *
+     *  @see MetadataEvent
+     */
+    mx_internal static const NAVIGATION:String = "navigation";
+
+    /**
+     *  @private
+     *  Cue Point type constant.  MetadataEvent.info.type
+     *  value for Event cue points embedded in FLV.
+     *
+     *  @see MetadataEvent
+     */
+    mx_internal static const EVENT:String = "event";
+
+    /**
+     *  The MetadataEvent.ACTION_SCRIPT constant defines the value of the
+     *  type property of the event object for a actionscript event.
+     *  These cue points are not embedded in the FLV file but defined
+     *  using ActionScript at run time.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
info	The index of the cue point
+     *       in the VideoDisplay.cuePoint Array.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *

+     *
+     *
+     *  @eventType actionscript
+     */
+    public static const ACTION_SCRIPT:String = "actionscript";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param type The event type; indicates the action that caused the event.
+     *
+     *  @param bubbles Specifies whether the event can bubble up the display list hierarchy.
+     *
+     *  @param cancelable Specifies whether the behavior associated with
+     *  the event can be prevented.
+     *
+     *  @param info For events off type ACTION_SCRIPT and CUE_POINT,
+     *  the index of the cue point in the VideoDisplay.cuePoint Array.
+     *  For events off type METADATA_RECEIVED,
+     *  an object describing the FLV  file,  including any cue points,
+     *  which is the same information as the VideoDisplay.metadata property.
+     */
+    public function MetadataEvent(type:String, bubbles:Boolean = false,
+                                  cancelable:Boolean = false,
+                                  info:Object = null)
+    {
+        super(type, bubbles, cancelable);
+
+        this.info = info;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  info
+    //----------------------------------
+
+    /**
+     *  For events off type ACTION_SCRIPT and CUE_POINT,
+     *  the index of the cue point in the VideoDisplay.cuePoint Array.
+     *
+     *
For events off type METADATA_RECEIVED,
+     *  an object describing the FLV  file,  including any cue points,
+     *  which is the same information as the VideoDisplay.metadata property.

+     *
+     *  @see mx.controls.VideoDisplay#metadata
+     */
+    public var info:Object;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function clone():Event
+    {
+        return new MetadataEvent(type, bubbles, cancelable, info);
+    }
+}
+
+}


Added centerOrigin() to center Image's origin and centerOO() to center its origin and offset.

--- net/flashpunk/graphics/Image.as
+++ net/flashpunk/graphics/Image.as
@@ -217,6 +217,25 @@
 		}

 		/**
+		 * Centers the Image's originX/Y to its center.
+		 */
+		public function centerOrigin():void
+		{
+			originX = _bufferRect.width / 2;
+			originY = _bufferRect.height / 2;
+		}
+
+		/**
+		 * Centers the Image's originX/Y to its center, and negates the offset by the same amount.
+		 */
+		public function centerOO():void
+		{
+			centerOrigin();
+			x = -originX;
+			y = -originY;
+		}
+
+		/**
 		 * Width of the image.
 		 */
 		public function get width():uint { return _bufferRect.width; }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19412
Author:   jasonsj@adobe.com
Date:     2010-12-15T23:54:30.560146Z

Log Message:
-----------
New TabbedViewNavigatorButtonBarSkin.
Fixed label alignment issues when using IconPlacement.BOTTOM.
Fixed disabled state (alpha) handling of Buttons.
Added DPI-specific styles to defaults.css using new CSS media query support.

QE notes: TabbedViewNavigatorButtonBarSkin is complete. Need to add tests for changing Button enabled state before/after icon changes.
Doc notes:
Bugs:
SDK-28715 Cannot size and position button correctly in i4 build.
Reviewer: jszeto
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/supportClasses/ButtonSkinBase.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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TabbedViewNavigatorButtonBarFirstButton_down.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarLastButton_down.fxg</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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarFirstButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorButtonBarFirstButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TabbedViewNavigatorButtonBarLastButton_down.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TabbedViewNavigatorButtonBarFirstButton_up.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarLastButton_up.fxg</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/.settings</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorButtonBarSkin.mxml</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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarHorizontalLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarFirstButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults320.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorButtonBarLastButtonSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults160.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TabbedViewNavigatorButtonBarLastButton_up.fxg</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as
@@ -11,8 +11,6 @@

 package spark.skins.mobile
 {
-import mx.states.State;
-
 import spark.components.ButtonBar;
 import spark.components.Group;
 import spark.components.TabbedViewNavigator;
@@ -65,17 +63,20 @@
      */
     override protected function createChildren():void
     {
-        contentGroup = new Group();
-        contentGroup.id = "contentGroup";
+        if (!contentGroup)
+        {
+            contentGroup = new Group();
+            contentGroup.id = "contentGroup";
+            addChild(contentGroup);
+        }

-        tabBar = new ButtonBar();
-        tabBar.id = "tabBar";
-        tabBar.requireSelection = true;
-        tabBar.setStyle("skinClass", TabbedViewNavigatorButtonBarSkin);
-        tabBar.height = 80;
-
-        addChild(contentGroup);
-        addChild(tabBar);
+        if (!tabBar)
+        {
+            tabBar = new ButtonBar();
+            tabBar.id = "tabBar";
+            tabBar.requireSelection = true;
+            addChild(tabBar);
+        }
     }

     override protected function commitCurrentState():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 16727
Author:   jszeto@adobe.com
Date:     2010-06-29T20:42:03.768739Z

Log Message:
-----------
Form and ComboBox Bug Fixes

SDK-25765 - ComboBox does not commit item when closed if Enter key is pressed

I changed the fix for this bug.

Instead of only committing the selection in ComboBox.applySelection if the dropDown is closed, we keep track of the user defined selection in DropDownList.keyDownHandler.

SDK-26268 - ComboBox does not commit value with TAB when openOnInput = false

Removed the restriction in ComboBox.applySelection that the dropDown must be open in order to commit

SDK-26442 -  When arrowing between the first two items in a flex combo box the selection is always on the secodn item

Fixed logic bug in ComboBox.changeHighlightedSelection.

SDK-26752 - error string no longer appears for Spark or MX components

The errorString was getting set in MXML. At that time, the component is not parented and not hooked up to its styles. So the call to get the showErrorTip style was returning false.

I moved this logic to commitProperties which solves the timing issue.

SDK-26497 - Spark Form displays errors in a seemingly random order

Changed the dictionary of invalid elements into a sorted array.
An element's sort order is based on its position in the display list tree using a depth first search. The position is represented by a Vector.<int>, with each item being the child index of the element's ancestor at that depth. For example, the second child of the first child of the root would have a Vector like this [0,0,1].

Whenever an element is invalid, we add it to the sorted array and perform a re-sort. We can live with using a heavy data structure like a Vector of ints because there should only be a few errors at a time in a Form. The alternative is to traverse the entire tree and store a pointer and the sort order for each node.

We make an assumption that the order in the display list tree is equivalent to the visual order of the Form's input controls. Since the Form's layout is based on VerticalLayout, this is a valid assumption. This same algorithm would work if the Form was switched to a horizontal layout.

SDK-26697 - Cannot reset Spark Form to original state if form had validation errors

Added logic to Form to listen for the errorStringChanged event on an invalid element. We don't use the same technique as in FormItem, which listens for errorStringChanged in the capture phase on the FormItem's contentGroup. This is because FormItem's errorString is set to the combined errorStrings of its children. If Form used the same technique, the error strings would appear twice.

QE notes: retest SDK-25765
Doc notes: none
Bugs: SDK-25765, SDK-26268, SDK-26442, SDK-26752, SDK-26497, SDK-26697
Reviewer: Kevin
Tests run: full run
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Form.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
@@ -834,7 +834,7 @@

                 }

-                proposedNewIndex = Math.min(proposedNewIndex, maxIndex);
+                proposedNewIndex = userProposedSelectedIndex = Math.min(proposedNewIndex, maxIndex);

                 if (proposedNewIndex >= 0)
                     setSelectedIndex(proposedNewIndex, true);


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutElementHelper.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutElementHelper.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.layout
+package spark.layout.supportClasses
 {

 /**
@@ -22,7 +22,7 @@
  */
 public class LayoutElementHelper
 {
-    include "../core/Version.as";
+    include "../../core/Version.as";

     // TODO EGeorgie: move to a more general place, this is not specific to the LayoutElementHelper


Use a start buffer of 3s instead of 1s.

Use a start buffer of 3s instead of 1s.

--- src/goplayer/Player.as
+++ src/goplayer/Player.as
@@ -9,7 +9,7 @@
   {
     private const DEFAULT_VOLUME : Number = .8

-    private const START_BUFFER : Duration = Duration.seconds(1)
+    private const START_BUFFER : Duration = Duration.seconds(3)
     private const SMALL_BUFFER : Duration = Duration.seconds(5)
     private const LARGE_BUFFER : Duration = Duration.seconds(60)
     private const SEEK_GRACE_TIME : Duration = Duration.seconds(2)


all non-commented text has been translated in logic folder

--- Arguments/src/Controller/logic/NotAllSyllogism.as
+++ Arguments/src/Controller/logic/NotAllSyllogism.as
@@ -44,10 +44,11 @@
 			var argSelector:ArgSelector = MenuPanel(FlexGlobals.topLevelApplication.map.agoraMap.menuPanelsHash[argumentTypeModel.ID]).schemeSelector;
 			var i:int;

-			output = "It cannot be the case, at the same time, that ";
+			output = Language.lookup("ArgCannotBe");

 			for(i=0; i<reasonModels.length; i++){
-				reasonText = reasonText +  reasonModels[i].statement.text + " and that ";
+				reasonText = reasonText +  reasonModels[i].statement.text +
+						Language.lookup("ArgAnd") + Language.lookup("ArgThat");
 				argumentTypeModel.inferenceModel.statements[i+1].text = reasonModels[i].statement.text;
 			}


formatting / docs

formatting / docs


temporary solution for spatial index bug

--- WeaveUISpark/src/weave/visualization/plotters/AbstractPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/AbstractPlotter.as
@@ -91,6 +91,9 @@
 		 */
 		protected function getReusableBounds(xMin:Number = NaN, yMin:Number = NaN, xMax:Number = NaN, yMax:Number = NaN):Bounds2D
 		{
+			// TEMPORARY SOLUTION because SpatialIndex seems to be misbehaving now that everything's asynchronous
+			return new Bounds2D(xMin,yMin,xMax,yMax);
+
 			var bounds:Bounds2D = ObjectPool.borrowObject(Bounds2D);
 			bounds.setBounds(xMin, yMin, xMax, yMax);
 			pooledObjects.push(bounds);


Fix error in getArea() on DiscSectorZone

--- src/org/flintparticles/twoD/zones/DiscSectorZone.as
+++ src/org/flintparticles/twoD/zones/DiscSectorZone.as
@@ -300,7 +300,7 @@
 		 */
 		public function getArea():Number
 		{
-			return ( Math.PI * _outerSq - Math.PI * _innerSq );
+			return ( _outerSq - _innerSq ) * ( _maxAngle - _minAngle ) * 0.5;
 		}

 		/**


altAudio : support discontinuity in ALTERNATE AUDIO rendition playlist related to https://github.com/mangui/flashls/issues/275 related to https://github.com/mangui/flashls/issues/6

--- src/org/mangui/hls/loader/AltAudioFragmentLoader.as
+++ src/org/mangui/hls/loader/AltAudioFragmentLoader.as
@@ -40,6 +40,8 @@
         private var _keystreamloader : URLStream;
         /** key map **/
         private var _keymap : Object;
+        /** Did a discontinuity occurs in the stream **/
+        private var _hasDiscontinuity : Boolean;
         /** Timer used to monitor/schedule fragment download. **/
         private var _timer : Timer;
         /** requested seek position **/
@@ -494,6 +496,7 @@
                 Log.debug("loadfirstaudiofragment(" + position + ")");
             }
             var frag : Fragment = _level.getFragmentBeforePosition(position);
+            _hasDiscontinuity = true;
             CONFIG::LOGGING {
                 Log.debug("Loading       " + frag.seqnum + " of [" + (_level.start_seqnum) + "," + (_level.end_seqnum) + "]");
             }
@@ -535,6 +538,8 @@
                 }
                 return LOADING_WAITING_LEVEL_UPDATE;
             } else {
+              // check whether there is a discontinuity between last segment and new segment
+              _hasDiscontinuity = (frag.continuity != frag_previous.continuity);
                 CONFIG::LOGGING {
                     Log.debug("Loading audio " + new_seqnum + " of [" + (_level.start_seqnum) + "," + (_level.end_seqnum) + "]");
                 }
@@ -559,6 +564,9 @@
                 _keystreamloader.addEventListener(HTTPStatusEvent.HTTP_STATUS, _keyLoadHTTPStatusHandler);
                 _keystreamloader.addEventListener(Event.COMPLETE, _keyLoadCompleteHandler);
             }
+            if (_hasDiscontinuity) {
+                _demux = null;
+            }
             _metrics = new HLSLoadMetrics(HLSLoaderTypes.FRAGMENT_ALTAUDIO);
             _metrics.level = _level.index;
             _metrics.id = frag.seqnum;
@@ -602,6 +610,9 @@

             if (fragData.metadata_tag_injected == false) {
                 fragData.tags.unshift(_fragCurrent.metadataTag);
+                if (_hasDiscontinuity) {
+                  fragData.tags.unshift(new FLVTag(FLVTag.DISCONTINUITY, fragData.dts_min, fragData.dts_min, false));
+                }
                 fragData.metadata_tag_injected = true;
             }
             // provide tags to HLSNetStream
@@ -640,6 +651,9 @@
                 if (fragData.tags.length) {
                     if (fragData.metadata_tag_injected == false) {
                         fragData.tags.unshift(_fragCurrent.metadataTag);
+                        if (_hasDiscontinuity) {
+                            fragData.tags.unshift(new FLVTag(FLVTag.DISCONTINUITY, fragData.dts_min, fragData.dts_min, false));
+                        }
                         fragData.metadata_tag_injected = true;
                     }
                     _streamBuffer.appendTags(HLSLoaderTypes.FRAGMENT_ALTAUDIO,_fragCurrent.level,_fragCurrent.seqnum , fragData.tags, fragData.tag_pts_min, fragData.tag_pts_max + fragData.tag_duration, _fragCurrent.continuity, _fragCurrent.start_time + fragData.tag_pts_start_offset / 1000);


fix minor coding style issue in IndexStream.initialize()

--- src/aerys/minko/render/geometry/stream/IndexStream.as
+++ src/aerys/minko/render/geometry/stream/IndexStream.as
@@ -69,8 +69,8 @@
 			if (indices)
 			{
 				var numIndices : int = indices && length == 0
-									   ? indices.length
-									   : Math.min(indices.length, length);
+					? indices.length
+					: Math.min(indices.length, length);

 				_data = new Vector.<uint>(numIndices);
 				for (var i : int = 0; i < numIndices; ++i)
@@ -80,51 +80,9 @@
 			{
 				_data = dummyData(length);
 			}
-
-			invalidate();
-		}
-
-		/*override flash_proxy function getProperty(name : *) : *
-		{
-			return _data[int(name)];
-		}
-
-		override flash_proxy function setProperty(name : *, value : *) : void
-		{
-			var index : int = int(name);
-
-			_data[index] = int(value);
-
-			invalidate();
-		}
-
-		override flash_proxy function nextNameIndex(index : int) : int
-		{
-			return index >= _data.length ? 0 : index + 1;
-		}
-
-		override flash_proxy function nextValue(index : int) : *
-		{
-			return _data[int(index - 1)];
-		}
-
-		override flash_proxy function deleteProperty(name : *) : Boolean
-		{
-		var index 	: int = int(name);
-		var length 	: int = length;
-
-		if (index > length)
-		return false;
-
-		for (var i : int = index; i < length - 1; ++i)
-		_data[i] = _data[int(i + 1)];
-
-		_data.length = length - 1;
-
-		invalidate();
-
-		return true;
-		}*/
+
+			invalidate();
+		}

 		public function get(index : int) : uint
 		{


Fix delete triangle function

Fix delete triangle function

--- src/aerys/minko/render/geometry/stream/IndexStream.as
+++ src/aerys/minko/render/geometry/stream/IndexStream.as
@@ -128,10 +128,19 @@
 		public function deleteTriangle(triangleIndex : uint) : void
 		{
 			checkWriteUsage(this);
-
-			_data.position = 0;
-			_data.writeBytes(_data, triangleIndex * 12, 12);
-			_data.length -= 12;
+
+			_data.position = _data.length - 6;
+			var v0 : uint = _data.readShort();
+			var v1 : uint = _data.readShort();
+			var v2 : uint = _data.readShort();
+
+			_data.position = triangleIndex * 12;
+			_data.writeShort(v0);
+			_data.writeShort(v1);
+			_data.writeShort(v2);
+
+//			_data.writeBytes(_data, triangleIndex * 12, 12);
+			_data.length -= 6;
 			_data.position = 0;

 			invalidate();


Oops, warnings, I guess they don't auto-cast function references to booleans without grumbling. Good for them I suppose.

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

--- src/as/com/threerings/crowd/client/OccupantAdapter.as
+++ src/as/com/threerings/crowd/client/OccupantAdapter.as
@@ -37,7 +37,7 @@
     // from interface OccupantObserver
     public function occupantEntered (info :OccupantInfo) :void
     {
-        if (_entered) {
+        if (_entered != null) {
             _entered(info);
         }
     }
@@ -45,7 +45,7 @@
     // from interface OccupantObserver
     public function occupantLeft (info :OccupantInfo) :void
     {
-        if (_left) {
+        if (_left != null) {
             _left(info);
         }
     }
@@ -53,7 +53,7 @@
     // from interface OccupantObserver
     public function occupantUpdated (oldinfo :OccupantInfo, newinfo :OccupantInfo) :void
     {
-        if (_updated) {
+        if (_updated != null) {
             _updated(oldinfo, newinfo);
         }
     }


We need to tell the clients that we did logoff after we've actually shutdown
and clear out our socket. The DID_LOGOFF notification is sent out to the client
after we've sent our LOGOFF request to the server, so we need to be sure that
no other messages go to the server after the LOGOFF request otherwise we risk
the server generating spurious warnings (like it does currently in the
thousands daily).

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

--- src/as/com/threerings/presents/client/Communicator.as
+++ src/as/com/threerings/presents/client/Communicator.as
@@ -144,14 +144,11 @@

     protected function shutdown (logonError :Error) :void
     {
-        _client.notifyObservers(ClientEvent.CLIENT_DID_LOGOFF, null);
-
         if (_socket != null)  {
             try {
                 _socket.close();
             } catch (err :Error) {
-                Log.getLog(this).warning(
-                    "Error closing failed socket [error=" + err + "].");
+                Log.getLog(this).warning("Error closing failed socket [error=" + err + "].");
             }
             removeListeners();
             _socket = null;
@@ -161,14 +158,14 @@
             _outBuffer = null;
         }

+        _client.notifyObservers(ClientEvent.CLIENT_DID_LOGOFF, null);
         _client.cleanup(logonError);
     }

     protected function sendMessage (msg :UpstreamMessage) :void
     {
         if (_outStream == null) {
-            Log.getLog(this).warning(
-                "No socket, dropping msg [msg=" + msg + "].");
+            Log.getLog(this).warning("No socket, dropping msg [msg=" + msg + "].");
             return;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9206
Author:   dloverin@adobe.com
Date:     2009-08-10T18:39:33.826984Z

Log Message:
-----------
Merge 3.4 changes 9109, 8949.

Also fixed a bug in the generated code for IFlexModuleFactory.allowInsecureDomain() and cleanup up SystemManager by removing unused variables rslSizes and lastSystemManager.

QE notes: None.
Doc notes: None.
Bugs: SDK-16050, SDK-22556
Reviewer:
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<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/core/IFlexModuleFactory.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/modules/compiler/src/java/flex2/tools/CompcPreLink.java</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/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>

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

--- frameworks/projects/framework/src/mx/preloaders/Preloader.as
+++ frameworks/projects/framework/src/mx/preloaders/Preloader.as
@@ -398,7 +398,8 @@
 		rslEvent.isResourceModule = (rslListLoader == resourceModuleListLoader);
 		rslEvent.bytesLoaded = item.total;
 		rslEvent.bytesTotal = item.total;
-		rslEvent.rslIndex = index;
+        rslEvent.loaderInfo = LoaderInfo(event.target);
+        rslEvent.rslIndex = index;
 		rslEvent.rslTotal = rslListLoader.getItemCount();
 		rslEvent.url = item.urlRequest;
 		dispatchEvent(rslEvent);


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

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

 package mx.preloaders
 {


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

--- frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as
+++ frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12306
Author:   hmuller@adobe.com
Date:     2009-12-01T00:16:47.642254Z

Log Message:
-----------
H,VScrollBar now install mouse wheel event listeners on themselves and their viewport so that mouse wheel handling works when there's no Scroller.

Removed some old dead (commented out long ago) code from Scroller.

QE notes: I reversed the direction for horizontal mouse wheel scrolling (applies when only a HSB is visible)
Doc notes:
Bugs: sdk-21930
Reviewer: Ryan, Jason
Tests run: DataGroup, List (before horizontal mouse wheel scroll direction change)
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -11,6 +11,7 @@

 package spark.components
 {
+import flash.events.MouseEvent;
 import flash.geom.Point;

 import mx.core.mx_internal;
@@ -140,11 +141,24 @@
      */
     override public function set viewport(newViewport:IViewport):void
     {
+        const oldViewport:IViewport = super.viewport;
+        if (oldViewport == newViewport)
+            return;
+
+        if (oldViewport)
+        {
+            oldViewport.removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
+            removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
+        }
+
         super.viewport = newViewport;
+
         if (newViewport)
         {
-            updateMaximumAndPageSize();
+            updateMaximumAndPageSize()
             value = newViewport.verticalScrollPosition;;
+            newViewport.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
+            addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
         }
     }

@@ -391,5 +405,38 @@
             maximum = viewport.contentHeight - viewport.height;
         }
     }
+
+    /**
+     *  @private
+     *  Scroll vertically by event.delta "steps".  This listener is added to both the scrollbar
+     *  and the viewport so we short-ciruit if the viewport doesn't exist or isn't visible.
+     *
+     *  Note also: the HScrollBar class redispatches mouse wheel events that target the HSB
+     *  to its viewport.  If a vertical scrollbar exists, this listener will handle those
+     *  events by scrolling vertically.   This is done so that if a VSB exists, the mouse
+     *  wheel always scrolls vertically, even if it's over the HSB.
+     */
+    mx_internal function mouseWheelHandler(event:MouseEvent):void
+    {
+        const vp:IViewport = viewport;
+        if (event.isDefaultPrevented() || !vp || !vp.visible)
+            return;
+
+        var nSteps:uint = Math.abs(event.delta);
+        var navigationUnit:uint;
+
+        // Scroll event.delta "steps".
+
+        navigationUnit = (event.delta < 0) ? NavigationUnit.DOWN : NavigationUnit.UP;
+        for (var vStep:int = 0; vStep < nSteps; vStep++)
+        {
+            var vspDelta:Number = vp.getVerticalScrollPositionDelta(navigationUnit);
+            if (!isNaN(vspDelta))
+                vp.verticalScrollPosition += vspDelta;
+        }
+
+        event.preventDefault();
+    }
+
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18150
Author:   dloverin@adobe.com
Date:     2010-10-14T13:11:14.955602Z

Log Message:
-----------
Fix scrolling issues with item editors and add editorIndicator skin part.

The editorIndicator is a skin part that provides a background for an item renderer when it is being edited. It will cover the selection indicator for that cell which will allow the focus rectangle to be easily seen.

QE notes: Close, but still not ready for testing.
Doc notes: None.
Bugs:
Reviewer: Hans
Tests run: cyclone server
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/TextGridItemEditor.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/ComboBoxGridItemEditor.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
@@ -11,17 +11,23 @@

 package spark.components.gridClasses
 {
+import flash.events.MouseEvent;
 import flash.utils.describeType;

+
+import mx.core.IIMESupport;
+import mx.core.IInvalidating;
+import mx.core.IVisualElement;
+import mx.core.IVisualElementContainer;
 import mx.core.mx_internal;
+import mx.core.UIComponent;
+import mx.validators.IValidatorListener;

 import spark.components.supportClasses.GridColumn;
 import spark.components.DataGrid;
 import spark.components.Group;
 import spark.components.IGridItemEditor;
 import spark.components.IGridItemRenderer;
-import mx.validators.IValidatorListener;
-import mx.core.IIMESupport;

 use namespace mx_internal;

@@ -313,6 +319,7 @@
      */
     public function cancel():void
     {
+        clearErrorStringFromContainer(this);
     }

     /**
@@ -320,6 +327,9 @@
      */
     public function discard():void
     {
+        // Clean up
+        removeEventListener(MouseEvent.MOUSE_UP, mouseUpDownHandler);
+        removeEventListener(MouseEvent.MOUSE_DOWN, mouseUpDownHandler);
     }

     /**
@@ -327,6 +337,9 @@
      */
     public function prepare():void
     {
+        // Stop the item renderer from seeing mouse clicks on the editor.
+        addEventListener(MouseEvent.MOUSE_UP, mouseUpDownHandler);
+        addEventListener(MouseEvent.MOUSE_DOWN, mouseUpDownHandler);
     }

     /**
@@ -387,7 +400,13 @@
         else if (typeInfo == "Boolean")
         {
             if (!(newData is Boolean))
-                newData = Boolean(newData);
+            {
+                var strNewData:String = newData.toString();
+                if (strNewData)
+                {
+                    newData = (strNewData.toLowerCase() == "true") ? true : false;
+                }
+            }
         }

         if (property && data[property] != newData)
@@ -405,19 +424,100 @@
      */
     public function validate():Boolean
     {
+        return validateContainer(this);
+    }
+
+    /**
+     *  @private
+     *
+     *  Verify the container's children are valid.
+     *  @param container container to verify, may not be null.
+     *  @return true if the container and its children are valid, false otherwise.
+     */
+    private function validateContainer(container:IVisualElementContainer):Boolean
+    {
+        if (container is IValidatorListener && IValidatorListener(container).errorString)
+            return false;
+
         // loop thru the children, looking for errors.
         var n:int = numElements;
         for (var i:int = 0; i < n; i++)
         {
-            var child:IValidatorListener = getElementAt(i) as IValidatorListener;
-            if (child && child.errorString)
+            var child:IVisualElement = container.getElementAt(i);
+            if (child is IValidatorListener && IValidatorListener(child).errorString)
             {
                 return false;
             }
+
+            if (child is IVisualElementContainer &&
+                !validateContainer(IVisualElementContainer(child)))
+            {
+                return false;
+            }
+
         }

         return true;
     }

+    /**
+     *  @private
+     *
+     *  Clear the error strings left by any validators. This will ensure any
+     *  tooltips left by a validator are torn down.
+     *
+     *  @param container container to verify, may not be null.
+     */
+    private function clearErrorStringFromContainer(container:IVisualElementContainer):void
+    {
+        if (container is IValidatorListener && IValidatorListener(container).errorString)
+        {
+            clearErrorString(IValidatorListener(container));
+        }
+
+        // loop thru the children, looking for errors to clear.
+        var n:int = numElements;
+        for (var i:int = 0; i < n; i++)
+        {
+            var child:IVisualElement = container.getElementAt(i);
+            if (child is IValidatorListener && IValidatorListener(child).errorString)
+            {
+                clearErrorString(IValidatorListener(child));
+            }
+
+            if (child is IVisualElementContainer)
+            {
+                clearErrorStringFromContainer(IVisualElementContainer(child));
+            }
+        }
+
+    }
+
+
+    /**
+     *  @private
+     *
+     *  Clear the error string left by a validator. This will ensure any
+     *  tooltips left by a validator are torn down.
+     *
+     *  @param validatorListener listener to clear error message in.
+     */
+    private function clearErrorString(validatorListener:IValidatorListener):void
+    {
+        validatorListener.errorString = "";
+        if (validatorListener is IInvalidating)
+        {
+            IInvalidating(validatorListener).validateNow();
+        }
+    }
+
+    /**
+     *   @private
+     *   Stop the item renderer from getting the click.
+     */
+    private function mouseUpDownHandler(event:MouseEvent):void
+    {
+        event.preventDefault();
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18697
Author:   dloverin@adobe.com
Date:     2010-11-18T15:19:57.251528Z

Log Message:
-----------
Grid item editor bug fixes.

DataGridEditor
•         The F2 key was editing non-editable cells in cell selection mode
•         Mouse clicking on non-UI components in an editor was causing the editor to close.

GridItemEditor
•         Calling event.stopPropagation() on mouse move events was keeping RichEditableText from seeing the mouse moves and selecting text with the mouse (it listens to the stage). Canceling the mouse move event has the same effect. The work around I ended up with was to dispatch the mouse move event to the datagrid’s parent and stopPropagation() on the original event. This is a bit messy but it keeps all the logic in the editor.

QE notes: None.
Doc notes: None.
Bugs: SDK-28582
Reviewer: Hans
Tests run: checkintests
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
@@ -27,6 +27,7 @@
 import spark.components.gridClasses.GridColumn;
 import spark.components.DataGrid;
 import spark.components.Group;
+import flash.geom.Point;

 use namespace mx_internal;

@@ -317,7 +318,7 @@
         clearErrorStringFromContainer(this);
         removeEventListener(MouseEvent.MOUSE_UP, mouseUpDownMoveHandler);
         removeEventListener(MouseEvent.MOUSE_DOWN, mouseUpDownMoveHandler);
-        removeEventListener(MouseEvent.MOUSE_MOVE, mouseUpDownMoveHandler);
+        removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
     }

     /**
@@ -330,7 +331,7 @@
         addEventListener(MouseEvent.MOUSE_DOWN, mouseUpDownMoveHandler);

         // Stop hover highlighting on rows underneath the editor.
-        addEventListener(MouseEvent.MOUSE_MOVE, mouseUpDownMoveHandler);
+        addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
     }

     /**
@@ -523,8 +524,26 @@
     {
         if (event.cancelable)
             event.preventDefault();
-        else
-            event.stopPropagation();
+    }
+
+    /**
+     *   @private
+     *   Stop the data grid from seeing the mouse move events.
+     */
+    private function mouseMoveHandler(event:MouseEvent):void
+    {
+        // Redispatch the event to the dataGrid's parent and stop
+        // the event from propagating past the editor.
+        // The stopPropagation() keeps the grid from showing hover from mouse
+        // moves within the editor.
+        // Dispatching the mouse move event to the data grid's parent
+        // keeps the data grid from seeing the event and allows the
+        // RichEditableText control to see the event (it listens to the stage).
+        var pt:Point = dataGrid.parent.globalToLocal(new Point(event.stageX, event.stageY));
+        event.localX = pt.x;
+        event.localY = pt.y;
+        dataGrid.parent.dispatchEvent(event);
+        event.stopPropagation();
     }
 }
 }