Transferred from the Adobe Open Source Subversion Repository

Revision: 21654
Author:   jimurphy@adobe.com
Date:     2011-07-20T21:20:43.347800Z

Log Message:
-----------
Rollback rev# 21492 so when we do a CAB drop this change is not present - to be re-committed at a later date

QE notes: no
Doc notes: no
Bugs: no
Reviewer:  alex
Tests run: compile, ct
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/modules/ModuleLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/modules/ModuleLoader.as</path>

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

--- frameworks/projects/spark/src/spark/modules/ModuleLoader.as
+++ frameworks/projects/spark/src/spark/modules/ModuleLoader.as
@@ -13,7 +13,6 @@
 {
 import flash.events.Event;
 import flash.system.ApplicationDomain;
-import flash.system.SecurityDomain;
 import flash.utils.ByteArray;
 import mx.core.ContainerCreationPolicy;
 import mx.core.FlexVersion;
@@ -141,22 +140,6 @@
  *  only a single copy of the module SWF file is transferred over the network by using the
  *  ModuleManager singleton.

  *
- *

- *  <s:ModuleLoader
- *    Properties
- *    url="No default"
- *    trustContent="false|true"
- *
- *    Events
- *    error="No default"
- *    loading="No default"
- *    progress="No default"
- *    ready="No default"
- *    setup="No default"
- *    unload="No default"
- *  />
- *

- *
  *  @see mx.modules.ModuleManager
  *  @see spark.modules.Module
  *  @see mx.controls.SWFLoader
@@ -250,66 +233,6 @@
      */
     public var child:IVisualElement;

-    //----------------------------------
-    //  trustContent
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the trustContent property.
-     */
-    private var _trustContent:Boolean = false;
-
-    [Bindable("trustContentChanged")]
-    [Inspectable(defaultValue="false")]
-
-    /**
-     *  If true, the content is loaded
-     *  into your security domain.
-     *  This means that the load fails if the content is in another domain
-     *  and that domain does not have a crossdomain.xml file allowing your
-     *  domain to access it.
-     *  This property only has an affect on the next load,
-     *  it will not start a new load on already loaded content.
-     *
-     *
The default value is false, which means load
-     *  any content without failing, but you cannot access the content.
-     *  Most importantly, the loaded content cannot
-     *  access your objects and code, which is the safest scenario.
-     *  Do not set this property to true unless you are absolutely sure of the safety
-     *  of the loaded content

-     *
-     *  @default false
-     *  @see flash.system.SecurityDomain
-     *  @see flash.system.ApplicationDomain
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion Flex 4.5.1
-     */
-    public function get trustContent():Boolean
-    {
-        return _trustContent;
-    }
-
-    /**
-     *  @private
-     */
-    public function set trustContent(value:Boolean):void
-    {
-        if (_trustContent != value)
-        {
-            _trustContent = value;
-
-            invalidateProperties();
-            invalidateSize();
-            invalidateDisplayList();
-
-            dispatchEvent(new Event("trustContentChanged"));
-        }
-    }
-
     //----------------------------------
     //  url
     //----------------------------------
@@ -693,10 +616,7 @@
             tempApplicationDomain = new ApplicationDomain(currentDomain);
         }

-        module.load(tempApplicationDomain,
-                    trustContent ? SecurityDomain.currentDomain : null,
-                    bytes,
-                    moduleFactory);
+        module.load(tempApplicationDomain, null, bytes, moduleFactory);
     }

     /**


Also use umake-shared.

Also use umake-shared.

This is still very naive: it just compiles, and cannot really know if the
result is usable.

	* src/tests/bin/uobject-check.as: Check the outcome of
	umake-remote.
	Run and check the outcome of umake-shared.

--- sdk-remote/src/tests/bin/uobject-check.as
+++ sdk-remote/src/tests/bin/uobject-check.as
@@ -19,12 +19,16 @@
 mkdir -p $builddir
 cd $builddir

-# The remote component name.
-remote=urbi-$me
+# The remote component: an executable.
+umake_remote=$(xfind_prog "umake-remote")
+xrun "umake-remote" $umake_remote --output=$me $uob
+test -x "$me" ||
+  fatal "$me is not executable"
+xrun "run \"$me --version\"" "./$me" --version

-umake_remote=$(find_prog "umake-remote" "$PATH")
-test -n "$umake_remote" ||
-  error OSFILE "cannot find umake-remote in $PATH"
+# The shared component: a dlopen module.
+umake_shared=$(xfind_prog "umake-shared")
+xrun "umake-shared" $umake_shared --output=$me $uob
+test -f "$me.la" ||
+  fatal "$me.la does not exist"

-run "compile \"$remote\"" $umake_remote --output=$remote $uob ||
-  fatal "$umake_remote failed"


Transferred from the Adobe Open Source Subversion Repository

Revision: 22678
Author:   chiedozi@adobe.com
Date:     2011-09-21T23:38:44.961936Z

Log Message:
-----------
SplitViewNavigator now ends all ViewTransitions before showing or hiding its PopUp and when the application reorients.
Removed an unnecessary enter frame handler in FlipViewTransition

QE notes:
Doc notes:
Bugs: SDK-31566, SDK-31577
Reviewer: Max
Tests run: mustella-mobile, checkintests-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
@@ -25,6 +25,7 @@
 import spark.components.supportClasses.ViewNavigatorBase;
 import spark.events.ElementExistenceEvent;
 import spark.events.PopUpEvent;
+import spark.transitions.ViewTransitionBase;

 use namespace mx_internal;

@@ -393,6 +394,11 @@
         if (!viewNavigatorPopUp|| !viewNavigatorPopUp.isOpen)
             return;

+        // Since view transitions can temporarily alter the display tree, we
+        // need to end all view transitions so that the display tree is restored
+        // to a correct state.
+        ViewTransitionBase.endTransitions();
+
         viewNavigatorPopUp.addEventListener(PopUpEvent.CLOSE, navigatorPopUp_closeHandler);
         viewNavigatorPopUp.close(true);
         viewNavigatorPopUp.removeEventListener('mouseDownOutside', navigatorPopUp_mouseDownOutsideHandler);
@@ -414,15 +420,21 @@
         // it is already open.
         if (index >= numElements || !viewNavigatorPopUp|| viewNavigatorPopUp.isOpen)
             return;
-
+
+        // Since view transitions can temporarily alter the display tree, we
+        // need to end all view transitions so that the display tree is restored
+        // to a correct state.
+        ViewTransitionBase.endTransitions();
+
         _popUpNavigatorIndex = index;
         _popUpNavigator = getElementAt(index) as ViewNavigatorBase;

         viewNavigatorPopUp.addEventListener('mouseDownOutside', navigatorPopUp_mouseDownOutsideHandler, false, 0, true);
         viewNavigatorPopUp.addElement(_popUpNavigator);

-        // Make sure the first navigator is visible
-        _popUpNavigator.visible = true;
+        // Make sure the first navigator is visible and prevent the
+        // SHOW event from being dispatched.
+        _popUpNavigator.setVisible(true, true);

         // Open the popup
         viewNavigatorPopUp.open(owner, true);
@@ -504,6 +516,11 @@
             return;

         lastAspectRatio = aspectRatio;
+
+        // Since view transitions can temporarily alter the display tree, we
+        // need to end all view transitions so that the display tree is restored
+        // to a correct state.
+        ViewTransitionBase.endTransitions();

         if (autoHideFirstViewNavigator)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19124
Author:   mcho@adobe.com
Date:     2010-12-07T23:55:59.858629Z

Log Message:
-----------
160 and 240 dpi mobile skins for VScrollbar and HScrollbar

QE notes:
Doc notes:
Bugs:
Reviewer: Jason SJ, Ryan
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/MobileSkins/src/views/ScrollbarView.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/MobileSkins/assets</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/MobileSkins/src/views/MobileSkinsHomeView.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/VScrollThumb.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/VScrollThumb.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/MobileSkins/assets/image.png</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/HScrollThumb.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/HScrollThumb.fxg</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -320,6 +320,8 @@
         return (w >= vsb.getPreferredBoundsWidth()) && (h >= vsb.getMinBoundsHeight());
     }

+
+
     //--------------------------------------------------------------------------
     //
     //  Overidden Methods
@@ -721,31 +723,20 @@

         if (hsbVisible)
         {
-            var hsbW:Number = (vsbVisible && vsbTakeUpSpace) ? w - vsb.getPreferredBoundsWidth() : w;
-            var hsbH:Number = hsb.getPreferredBoundsHeight();
+			var hsbH:Number = hsb.getPreferredBoundsHeight();
+            var hsbW:Number = vsbVisible ? w - vsb.getPreferredBoundsWidth() : w;
             hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), hsbW), hsbH);

-            // if in mouse mode, lay out scrollbars normally
-            // if in touch mode, we overlay the scrollbars, so let's inset it by a bit
-            if (scroller.getStyle("interactionMode") == InteractionMode.MOUSE)
-                hsb.setLayoutBoundsPosition(0, h - hsbH);
-            else
-                hsb.setLayoutBoundsPosition(0, h - hsbH - 3);
+			hsb.setLayoutBoundsPosition(0, h - hsbH);
         }

         if (vsbVisible)
         {
             var vsbW:Number = vsb.getPreferredBoundsWidth();
-            var vsbH:Number = (hsbVisible && hsbTakeUpSpace) ? h - hsb.getPreferredBoundsHeight() : h;
-            vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), vsbH));
-
-            // if in mouse mode, lay out scrollbars normally
-            // if in touch mode, we overlay the scrollbars, so let's inset it by a bit
-            // FIXME (rfrishbe): shouldn't hardcode the 3 here
-            if (scroller.getStyle("interactionMode") == InteractionMode.MOUSE)
-                vsb.setLayoutBoundsPosition(w - vsbW, 0);
-            else
-                vsb.setLayoutBoundsPosition(w - vsbW - 3, 0);
+            var vsbH:Number = hsbVisible ? h - hsb.getPreferredBoundsHeight() : h;
+			vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), vsbH));
+
+			vsb.setLayoutBoundsPosition(w - vsbW, 0);
         }

 		var viewportGroup:GroupBase;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -13,10 +13,16 @@
 {
 import flash.geom.Point;

+import mx.core.FlexVersion;
+import mx.core.IContainerInvalidating;
+import mx.core.ILayoutElement;
 import mx.core.IUIComponent;
 import mx.core.InteractionMode;
 import mx.core.ScrollPolicy;
+import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
+import mx.managers.ILayoutManagerClient;
+import mx.managers.ILayoutManagerContainerClient;
 import mx.utils.MatrixUtil;

 import spark.components.Scroller;
@@ -319,6 +325,82 @@
     //  Overidden Methods
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  Compute the estimatedWidth and estimatedHeight on the
+     *  elements.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    override public function estimateSizesOfElements():void
+    {
+        var scroller:Scroller = getScroller();
+        if (!scroller)
+            return;
+
+        var viewport:IViewport = scroller.viewport;
+        var layoutElement:ILayoutElement = viewport as ILayoutElement;
+        if (!layoutElement)
+			return;
+
+        var cw:Number;
+        var ch:Number;
+        var oldcw:Number = layoutElement.estimatedWidth;
+        var oldch:Number = layoutElement.estimatedHeight;
+        cw = target.estimatedWidth;
+        if (isNaN(cw) && !isNaN(target.explicitWidth))
+            cw = target.explicitWidth;
+        ch = target.estimatedHeight;
+        if (isNaN(ch) && !isNaN(target.explicitHeight))
+            ch = target.explicitHeight;
+
+        const minViewportInset:Number = scroller.minViewportInset;
+        const measuredSizeIncludesScrollBars:Boolean = scroller.measuredSizeIncludesScrollBars && (scroller.getStyle("interactionMode") == InteractionMode.MOUSE);
+        const hsb:ScrollBarBase = scroller.horizontalScrollBar;
+        var showHSB:Boolean = false;
+        if (measuredSizeIncludesScrollBars)
+            switch(scroller.getStyle("horizontalScrollPolicy"))
+            {
+                case ScrollPolicy.ON:
+                    if (hsb) showHSB = true;
+                    break;
+                case ScrollPolicy.AUTO:
+                    if (hsb) showHSB = hsb.visible;
+                    break;
+            }
+
+        const vsb:ScrollBarBase = scroller.verticalScrollBar;
+        var showVSB:Boolean = false;
+        if (measuredSizeIncludesScrollBars)
+            switch(scroller.getStyle("verticalScrollPolicy"))
+            {
+                case ScrollPolicy.ON:
+                    if (vsb) showVSB = true;
+                    break;
+                case ScrollPolicy.AUTO:
+                    if (vsb) showVSB = vsb.visible;
+                    break;
+            }
+
+        ch -= (showHSB) ? hsbRequiredHeight() + minViewportInset : minViewportInset * 2;
+        cw -= (showVSB) ? vsbRequiredWidth() + minViewportInset : minViewportInset * 2;
+
+        layoutElement.setEstimatedSize(cw, ch);
+        if (layoutElement is ILayoutManagerContainerClient)
+		{
+			var sameWidth:Boolean = isNaN(cw) && isNaN(oldcw) || cw == oldcw;
+			var sameHeight:Boolean = isNaN(ch) && isNaN(oldch) || ch == oldch;
+            if (!(sameHeight && sameWidth))
+            {
+                if (layoutElement is IContainerInvalidating)
+                    IContainerInvalidating(layoutElement).invalidateEstimatedSizesOfChildren();
+                ILayoutManagerContainerClient(layoutElement).validateEstimatedSizesOfChildren();
+            }
+		}
+    }

     /**
      * @private
@@ -641,6 +723,12 @@

         if (viewport)
         {
+            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+            {
+                estimateSizesOfElements();
+                if (viewport is ILayoutManagerClient)
+                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(viewport), true);
+            }
             viewport.setLayoutBoundsSize(viewportW, viewportH);
             viewport.setLayoutBoundsPosition(minViewportInset, minViewportInset);
         }
@@ -673,25 +761,47 @@
             else
                 vsb.setLayoutBoundsPosition(w - vsbW - 3, 0);
         }
-
-        // If we've added an auto scrollbar, then the measured size is likely to have been wrong.
-        // There's a risk of looping here, so we count.
-        if ((invalidationCount < 2) && (((vsbVisible != oldShowVSB) && vAuto) || ((hsbVisible != oldShowHSB) && hAuto)))
-        {
-            target.invalidateSize();
-
-            // If the viewport's layout is virtual, it's possible that its
-            // measured size changed as a consequence of laying it out,
-            // so we invalidate its size as well.
-            var viewportGroup:GroupBase = viewport as GroupBase;
-            if (viewportGroup && viewportGroup.layout && viewportGroup.layout.useVirtualLayout)
-                viewportGroup.invalidateSize();
-
-            invalidationCount += 1;
-        }
-        else
-            invalidationCount = 0;
-
+
+		var viewportGroup:GroupBase;
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_5)
+        {
+            // If we've added an auto scrollbar, then the measured size is likely to have been wrong.
+            // There's a risk of looping here, so we count.
+            if ((invalidationCount < 2) && (((vsbVisible != oldShowVSB) && vAuto) || ((hsbVisible != oldShowHSB) && hAuto)))
+            {
+                target.invalidateSize();
+
+                // If the viewport's layout is virtual, it's possible that its
+                // measured size changed as a consequence of laying it out,
+                // so we invalidate its size as well.
+                viewportGroup = viewport as GroupBase;
+                if (viewportGroup && viewportGroup.layout && viewportGroup.layout.useVirtualLayout)
+                    viewportGroup.invalidateSize();
+
+                invalidationCount += 1;
+            }
+            else
+                invalidationCount = 0;
+        }
+		else
+		{
+			if (((vsbVisible != oldShowVSB) && vAuto) || ((hsbVisible != oldShowHSB) && hAuto))
+			{
+				const measuredSizeIncludesScrollBars:Boolean = scroller.measuredSizeIncludesScrollBars && (scroller.getStyle("interactionMode") == InteractionMode.MOUSE);
+				if (measuredSizeIncludesScrollBars)
+				{
+					target.invalidateSize();
+
+					// If the viewport's layout is virtual, it's possible that its
+					// measured size changed as a consequence of laying it out,
+					// so we invalidate its size as well.
+					viewportGroup = viewport as GroupBase;
+					if (viewportGroup && viewportGroup.layout && viewportGroup.layout.useVirtualLayout)
+						viewportGroup.invalidateSize();
+				}
+			}
+		}
+
         target.setContentSize(w, h);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4192
Author:   rfrishbe@adobe.com
Date:     2008-11-26T19:39:48.250759Z

Log Message:
-----------
This change will allow us to handle having the same items multiple times in the list, for example “Ryan Frishberg” can now be in the list twice.

In order to do it, rather than using the item to find the itemRenderer or to tell the list that an item’s been selected, we need to use the index instead.  Methods like getItemRenderer and getRendererItem were changed to accept an index rather than an item.  Other methods were added, like isItemIndexSelected() because I felt isItemSelected() is still a useful method to have, even though it’s ambiguous when multiple items come in to play.

For now, I just tried to change the parameters where needed.  Some of the names of the methods were updated to reflect the change, but others weren’t because PARB is going to review a lot of this on Thursday, so it’s easier to make a name change only once (and after PARB approves it).

I also added properties to ItemExistanceChangeEvent.as.  In a later checkin, I’ll create a separate RendererExistanceChangeEvent.as for DataGroups and use ItemExistanceChangeEvents only for IVisualElementContainers (Halo containers  will also dispatch these events).  However, this needs to be PARB reviewed, so I figured it’s best to hold off on this change until later.

Also included in this checkin are some small ASDoc updates to no longer use any of the “addItem(), numItems”, and instead use addElement() or numElements where appropriate.

QE Notes: Steve's excluded any failing tests.  As noted in the checkin, there will probably be some renaming related to these methods.  Also, add some tests for duplicate items now.
Doc Notes: None
Bugs: SDK-17912
Reviewer: Glenn
tests: checkintests, mustella DataGroup, FxDataContainer, FxList

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ItemExistenceChangedEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2485,7 +2485,7 @@
      *
      *
You do not call this method directly.
      *  Flex calls the commitProperties() method when you
-     *  use the addItem() method to add an element to the group,
+     *  use the addElement() method to add an element to the group,
      *  or when you call the invalidateProperties() method of the element.
      *  Calls to the commitProperties() method occur before calls to the
      *  measure() method. This lets you set property values that might
@@ -2664,7 +2664,7 @@
      *
      *
You do not call this method directly. Flex calls the
      *  measure() method when the element is added to a group
-     *  using the addItem() method, and when the element's
+     *  using the addElement() method, and when the element's
      *  invalidateSize() method is called.

      *
      *
By default you set both explicit height and explicit width of an element,
@@ -2745,7 +2745,7 @@
      *
      *
You do not call this method directly. Flex calls the
      *  updateDisplayList() method when the component is added
-     *  to a group using the addItem() method, and when the element's
+     *  to a group using the addElement() method, and when the element's
      *  invalidateDisplayList() method is called.

      *
      *
This method is where you would do programmatic drawing


Transferred from the Adobe Open Source Subversion Repository

Revision: 8031
Author:   egeorgie@adobe.com
Date:     2009-06-20T01:10:03.288554Z

Log Message:
-----------
Scrub the TODOs in the framework, convert to FIXMEs in the new convention and assigning an owner.

Doc Notes: N/A
Bugs: N/A
Reviewer: Deepa
tests: build, checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.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/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.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/effects/supportClasses/FadeInstance.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/supportClasses/ScrollBar.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/flex4/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.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/framework/src/mx/styles/StyleManager.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/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/LineSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.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/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -224,7 +224,7 @@

     override protected function getStrokeExtents(postLayoutTransform:Boolean = true):Point
     {
-        // TODO EGeorgie: currently we take only scale into account,
+        // FIXME (egeorgie): currently we take only scale into account,
         // but depending on joint style, cap style, etc. we need to take
         // the whole matrix into account as well as examine every line segment...

@@ -256,7 +256,7 @@
         var sX:Number = scaleX;
         var sY:Number = scaleY;

-        // TODO EGeorgie: stroke thickness depends on all matrix components,
+        // FIXME (egeorgie): stroke thickness depends on all matrix components,
         // not only on scale.
         if (scaleMode == LineScaleMode.NORMAL)
         {


Fix MP3 data passing.

Fix MP3 data passing.

--- HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
@@ -469,7 +469,7 @@
             // TODO: determine MP3 PES Packet duration exactly.
             var duration:int = 16;

-            sendFLVTag(convertFLVTimestamp(pes.pts), FLVTags.TYPE_AUDIO, FLVTags.AUDIO_CODEC_MP3, -1, pes.buffer, 0, pes.buffer.length, duration);
+            sendFLVTag(convertFLVTimestamp(pes.pts), FLVTags.TYPE_AUDIO, FLVTags.AUDIO_CODEC_MP3, -1, pes.buffer, pes.headerLength, pes.buffer.length - pes.headerLength, duration);
         }

         private function generateScriptData(values:Array):ByteArray


Transferred from the Adobe Open Source Subversion Repository

Revision: 17440
Author:   jasonsj@adobe.com
Date:     2010-08-21T01:02:38.151830Z

Log Message:
-----------
Fix initialization of titleDisplay ActionBar skin part.
Updated ActionBarSkin for latest XD spec for padding and button sizes.
Removed titleDisplay insertion into titleGroup behavior.
Updated SlideViewTransition to look for titleDisplay.

QE notes:
Doc notes:
Bugs:
SDK-27497 Clicks on controls near the ActionBar do not register.
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
@@ -15,6 +15,7 @@
 import flash.events.Event;
 import flash.text.TextLineMetrics;

+import mx.core.FlexGlobals;
 import mx.core.ILayoutElement;
 import mx.core.UIComponent;
 import mx.core.UITextField;
@@ -68,8 +69,11 @@
     public var navigationGroup:Group;
     public var titleGroup:Group;
     public var actionGroup:Group;
-    public var titleDisplay:IDisplayText;
+    public var titleDisplay:TitleDisplayComponent;
     private var border:SpriteVisualElement;
+
+    // FIXME (jasonsj): pending mobile styling spec
+    private static const TITLE_PADDING:Number = 25;

     //--------------------------------------------------------------------------
     //
@@ -95,9 +99,10 @@
         titleGroup = new Group();
         hLayout = new HorizontalLayout();
         hLayout.horizontalAlign = HorizontalAlign.LEFT;
-        hLayout.verticalAlign = VerticalAlign.MIDDLE;
+        hLayout.verticalAlign = VerticalAlign.JUSTIFY;
         hLayout.gap = 0;
-        hLayout.paddingLeft = hLayout.paddingRight = 15;
+        hLayout.paddingLeft = hLayout.paddingTop = hLayout.paddingRight =
+            hLayout.paddingBottom = 0;
         titleGroup.layout = hLayout;
         addChild(titleGroup);

@@ -115,6 +120,7 @@
         titleDisplayComp.percentWidth = 100;
         titleDisplayComp.styleName = this;
         titleDisplay = titleDisplayComp;
+        addChild(titleDisplayComp);

         initializeStyles();
     }
@@ -185,12 +191,44 @@
             actionGroup.setLayoutBoundsPosition(right, 1); // top border
         }

-        var titleGroupWidth:Number = right - left;
-        if (titleGroupWidth < 0)
-            titleGroupWidth = 0;
-
-        titleGroup.setLayoutBoundsSize(titleGroupWidth, unscaledHeight);
-        titleGroup.setLayoutBoundsPosition(left, 1);
+        var titleCompWidth:Number = right - left;
+        if (titleCompWidth < 0)
+            titleCompWidth = 0;
+
+        if (titleGroup.numElements > 0 && titleGroup.includeInLayout)
+        {
+            titleGroup.setLayoutBoundsSize(titleCompWidth, unscaledHeight);
+            titleGroup.setLayoutBoundsPosition(left, 1);
+
+            titleDisplay.visible = false;
+            titleGroup.visible = true;
+        }
+        else
+        {
+            var titleX:Number = left + TITLE_PADDING;
+            var titleY:Number = 0;
+
+            // FIXME (jasonsj): pending mobile styling spec
+            // paddingLeft, paddingRight
+            titleCompWidth -= TITLE_PADDING * 2;
+
+            if (FlexGlobals.topLevelApplication.getStyle("titleAlign") == "center")
+            {
+                // horizontalAlign=center
+                titleCompWidth = titleDisplay.getExplicitOrMeasuredWidth();
+                titleX = Math.floor((unscaledWidth / 2) - (titleCompWidth / 2));
+            }
+
+            // verticalAlign=center
+            var titleHeight:Number = titleDisplay.getExplicitOrMeasuredHeight();
+            titleY = Math.floor((unscaledHeight / 2) - (titleHeight / 2));
+
+            titleDisplay.setLayoutBoundsSize(titleCompWidth, titleHeight);
+            titleDisplay.setLayoutBoundsPosition(titleX, titleY + 1); // +1 FXG border
+
+            titleDisplay.visible = true;
+            titleGroup.visible = false;
+        }

         // Draw background
         graphics.clear();
@@ -229,26 +267,16 @@
     private var title:String;
     private var titleChanged:Boolean;

-    // FIXME (jasonsj): padding styles
-    private var paddingLeft:int = 15;
-    private var paddingRight:int = 15;
-    private var paddingTop:int = 15;
-    private var paddingBottom:int = 15;
-
     public function TitleDisplayComponent()
     {
         super();
-		title = "";
-
-        // FIXME (jasonsj): mobile styling spec
-        setStyle("fontSize", 32);
-        setStyle("fontWeight", "bold");
-        setStyle("textAlign", "left");
-        setStyle("textShadowColor", 0x000000);
+        title = "";
     }

     override protected function createChildren():void
     {
+        super.createChildren();
+
         // FIXME (jasonsj): pending mobile styling spec:
         //                  drop shadow style
         //                  textAlign
@@ -328,10 +356,7 @@

         textHeight = lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING;

-        // FIXME (jasonsj): pending mobile styling spec: vertical center
         titleDisplay.commitStyles();
-        titleDisplay.x = 0;
-        titleDisplay.y = Math.floor((unscaledHeight / 2) - (textHeight / 2)); // centered
         titleDisplay.width = unscaledWidth;
         titleDisplay.height = unscaledHeight;

@@ -341,7 +366,6 @@
         titleDisplay.truncateToFit();

         titleDisplayShadow.commitStyles();
-        titleDisplayShadow.x = 0;
         titleDisplayShadow.y = titleDisplay.y + 1; // 90 degree drop shadow
         titleDisplayShadow.width = unscaledWidth;
         titleDisplayShadow.height = unscaledHeight;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17153
Author:   jasonsj@adobe.com
Date:     2010-08-02T19:45:12.019654Z

Log Message:
-----------
SDK-27098 Correct method of truncation on ActionBarSkin titleDisplay

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
@@ -51,7 +51,6 @@
         hLayout.gap = 0;
         hLayout.paddingLeft = hLayout.paddingTop = hLayout.paddingRight = hLayout.paddingBottom = 10;
         titleGroup.layout = hLayout;
-        titleGroup.clipAndEnableScrolling = true;
         addChild(titleGroup);

         actionGroup = new Group();
@@ -64,6 +63,8 @@
         addChild(actionGroup);

         titleDisplay = new Label();
+		titleDisplay.maxDisplayedLines = 1;
+		titleDisplay.percentWidth = 100;
         titleDisplay.setStyle("fontSize", "18");
         titleDisplay.setStyle("verticalAlign", "middle");
         titleDisplay.setStyle("color", "0xFFFFFF");
@@ -105,7 +106,7 @@
         var titleGroupWidth:Number = right - left;
         if (titleGroupWidth < 0)
         	titleGroupWidth = 0;
-
+
         titleGroup.setLayoutBoundsPosition(left, 0);
         titleGroup.setLayoutBoundsSize(titleGroupWidth, unscaledHeight);


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

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

-/**
- *  Specifies the alpha transparency value of the focus skin.
- *
- *  @default 0.4
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
 [Style(name="focusAlpha", type="Number", inherit="no")]

 /**


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

--- frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
+++ frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
@@ -0,0 +1,256 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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.display.DisplayObject;
+import flash.events.Event;
+
+/**
+ *  The IndexChangedEvent class represents events that are dispatched when
+ *  an index changes.
+ *  This event can indicate that the index value of a child of a container changed,
+ *  the displayed child of a navigator container such as an Accordion or
+ *  ViewStack changed, or the order of column headers in a DataGrid
+ *  control changed.
+ *
+ *  @see mx.core.Container
+ */
+public class IndexChangedEvent extends Event
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The IndexChangedEvent.CHANGE constant defines the value of the
+     *  type property of the event object for a change event,
+     *  which indicates that an index has changed, such as when and Accordion control
+     *  changes the displayed panel or a ViewStack changes views.
+     *
+     *
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.

+     *
inputType	Indicates whether this event
+     *         was caused by a mouse or keyboard interaction.

+     *
newIndex	The zero-based index
+     *       after the change.

+     *
oldIndex	The zero-based index
+     *       before the change.

+     *
relatedObject	Contains a reference
+     *       to the child object that corresponds to the new index.

+     *
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.

+     *
TriggerEvent	The event that
+     *        triggered this event.

+     *
Type	IndexChangedEvent.CHANGE

+     *

+     *
+     *  @eventType change
+     */
+    public static const CHANGE:String = "change";
+
+    /**
+     *  The IndexChangedEvent.CHILD_INDEX_CHANGE constant defines the value of the
+     *  type property of the event object for a childIndexChange event,
+     *  which indicates that a component's index among a container's children
+     *  has changed.
+     *
+     *
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.

+     *
inputType	Indicates whether this event
+     *         was caused by a mouse or keyboard interaction.

+     *
newIndex	The zero-based index of the
+     *       child after the change.

+     *
oldIndex	The zero-based index of the
+     *       child before the change.

+     *
relatedObject	Contains a reference
+     *       to the child object whose index changed.

+     *
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.

+     *
TriggerEvent	null

+     *
Type	IndexChangedEvent.CHILD_INDEX_CHANGE

+     *

+     *
+     *  @eventType childIndexChange
+     */
+    public static const CHILD_INDEX_CHANGE:String = "childIndexChange";
+
+    /**
+     *  The IndexChangedEvent.HEADER_SHIFT constant defines the value of the
+     *  type property of the event object for a headerShift event,
+     *  which indicates that a header has changed its index, as when a user drags
+     *  a DataGrid column to a new position.
+     *
+     *
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.

+     *
inputType	Indicates whether this event
+     *         was caused by a mouse or keyboard interaction.

+     *
newIndex	The zero-based index of the
+     *       header after the change.

+     *
oldIndex	The zero-based index of the
+     *       header before the change.

+     *
relatedObject	null

+     *
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.

+     *
TriggerEvent	The event that
+     *        triggered this event.

+     *
Type	IndexChangedEvent.HEADER_SHIFT

+     *

+     *
+     *  @eventType headerShift
+     */
+    public static const HEADER_SHIFT:String = "headerShift";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *  Normally called by a Flex control and not used in application code.
+     *
+     *  @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 relatedObject The child object associated with the index change.
+     *
+     *  @param oldIndex The zero-based index before the change.
+     *
+     *  @param newIndex The zero-based index after the change.
+     *
+     *  @param triggerEvent The event that triggered this event.
+     */
+    public function IndexChangedEvent(type:String, bubbles:Boolean = false,
+                                      cancelable:Boolean = false,
+                                      relatedObject:DisplayObject = null,
+                                      oldIndex:Number = -1,
+                                      newIndex:Number = -1,
+                                      triggerEvent:Event = null)
+    {
+        super(type, bubbles, cancelable);
+
+        this.relatedObject = relatedObject;
+        this.oldIndex = oldIndex;
+        this.newIndex = newIndex;
+        this.triggerEvent = triggerEvent;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  newIndex
+    //----------------------------------
+
+    /**
+     *  The zero-based index after the change. For change events
+     *  it is the index of the current child. For childIndexChange
+     *  events, it is the new index of the child. For headerShift
+     *  events, it is the new index of the header.
+     */
+    public var newIndex:Number;
+
+    //----------------------------------
+    //  oldIndex
+    //----------------------------------
+
+    /**
+     *  The zero-based index before the change.
+     *  For change events it is the index of the previous child.
+     *  For childIndexChange events, it is the previous index
+     *  of the child.
+     *  For headerShift events, it is the previous index of
+     *  the header.
+     */
+    public var oldIndex:Number;
+
+    //----------------------------------
+    //  relatedObject
+    //----------------------------------
+
+    /**
+     *  The child object whose index changed, or the object associated with
+     *  the new index. This property is not set for header changes.
+     */
+    public var relatedObject:DisplayObject;
+
+    //----------------------------------
+    //  triggerEvent
+    //----------------------------------
+
+    /**
+     *  The event that triggered this event.
+     *  Indicates whether this event was caused by a mouse or keyboard interaction.
+     *  The value is null when a container dispatches a
+     *  childIndexChanged event.
+     */
+    public var triggerEvent:Event;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function clone():Event
+    {
+        return new IndexChangedEvent(type, bubbles, cancelable,
+                                     relatedObject, oldIndex, newIndex,
+                                     triggerEvent);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 5257
Author:   jszeto@adobe.com
Date:     2009-03-11T22:12:50.289894Z

Log Message:
-----------
Flex SDK Bug Fixes

SDK-19314 Arrow keys which move a slider's thumb also scroll the player window.

If we handle an arrow key or HOME/END, then we stop it from propagating.

SDK-19443 FxHSlider doesnt position tooltip/datatip correctly when on the right edge of the flex app

Added logic to ensure that the dataTip stays in the bounds of the screen

SDK-19384 @review tags are appearing before asdoc descriptions, causing empty ASDoc tooltips in Flex Builder

Removed all occurrences of @review since it is no longer used.

QE Notes: n/a
Doc Notes: n/a
Bugs: SDK-19314, SDK-19443, SDK-19384
Reviewer: Ryan

Modified Paths:
--------------
<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/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxSlider.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/flex4/src/mx/filters/ColorMatrixFilter.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/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/DropDownBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
+++ frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
@@ -15,8 +15,6 @@
 import flash.filters.ColorMatrixFilter;

 /**
- *  @review
- *
  *  The ColorMatrixFilter class lets you apply a 4 x 5 matrix transformation on the
  *  RGBA color and alpha values of every pixel in the input image to produce a result
  *  with a new set of RGBA color and alpha values. It allows saturation changes, hue
@@ -26,7 +24,7 @@
  *  BitmapData objects.
  *
  *  @see flash.filters.ColorMatrixFilter
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -52,15 +50,13 @@
 								  1,0];

 	/**
-	 *  @review
-	 *
 	 *  A comma delimited list of 20 doubles that comprise a 4x5 matrix applied to the
 	 *  rendered element.  The matrix is in row major order -- that is, the first five
 	 *  elements are multipled by the vector [srcR,srcG,srcB,srcA,1] to determine the
 	 *  output red value, the second five determine the output green value, etc.
 	 *
 	 *  The value must either be an array or comma delimited string of 20 numbers.
-	 *
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5


Added box-sizing: border-box to the DocumentView's default styles to enable using borders and paddings for the body element without specifying dimensions

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -357,6 +357,7 @@
 			m_elementDefaultStyles.setStyle('height', '100%');
 			m_elementDefaultStyles.setStyle('padding', '0');
 			m_elementDefaultStyles.setStyle('margin', '0');
+			m_elementDefaultStyles.setStyle('box-sizing', 'border-box');
 			m_elementDefaultStyles.setStyle('position', 'absolute');
 			m_elementDefaultStyles.setStyle('fontFamily', '_sans');
 			m_elementDefaultStyles.setStyle('fontSize', '12px');


fix livestream with dvr window size

fix livestream with dvr window size

--- plugins/akamaiHDPlugin/src/com/kaltura/kdpfl/plugin/akamaiHDMediator.as
+++ plugins/akamaiHDPlugin/src/com/kaltura/kdpfl/plugin/akamaiHDMediator.as
@@ -6,6 +6,9 @@
 	import com.kaltura.kdpfl.model.type.NotificationType;
 	import com.kaltura.kdpfl.view.media.KMediaPlayerMediator;

+	import org.osmf.events.MediaElementEvent;
+	import org.osmf.traits.DVRTrait;
+	import org.osmf.traits.MediaTraitType;
 	import org.puremvc.as3.interfaces.INotification;
 	import org.puremvc.as3.patterns.mediator.Mediator;

@@ -42,7 +45,8 @@
 		{
 			return [
 				NotificationType.MEDIA_READY,
-				NotificationType.PLAYER_PLAYED
+				NotificationType.PLAYER_PLAYED,
+				NotificationType.MEDIA_ELEMENT_READY
 			];
 		}

@@ -108,7 +112,33 @@

 					_flashvars["objMetadataValues"+i] = akamaiMetadataValues;
 					break;
+
+				case NotificationType.MEDIA_ELEMENT_READY:
+					if (_mediaProxy.vo.isLive && _mediaProxy.vo.canSeek && _mediaProxy.vo.media)
+					{
+						_mediaProxy.vo.media.addEventListener(MediaElementEvent.TRAIT_ADD, onMediaTraitAdd);
+
+					}
+					break;
 			}
 		}
+
+
+		/**
+		 * sets DVR window size according to actual window size (including Akamai's padding)
+		 * @param e
+		 *
+		 */
+		private function onMediaTraitAdd(e: MediaElementEvent) :  void
+		{
+			if (e.traitType==MediaTraitType.DVR)
+			{
+				var dvrTrait:DVRTrait = _mediaProxy.vo.media.getTrait(MediaTraitType.DVR) as DVRTrait;
+				(facade.retrieveMediator(KMediaPlayerMediator.NAME) as KMediaPlayerMediator).dvrWinSize = dvrTrait.windowDuration;
+				_mediaProxy.vo.media.removeEventListener(MediaElementEvent.TRAIT_ADD, onMediaTraitAdd);
+			}
+
+		}
+
 	}
 }


Revert "remove the return in the middle of the play function"

This reverts commit 6318b2127b241cdb67e4ac70a9a34c1599485d0d.

--- src/Player.as
+++ src/Player.as
@@ -221,9 +221,10 @@
       if (client) {
         /* Stop the client, and 'onStopped' will start the new stream. */
         client.stop();
-      }else{
-        start();
-      }
+        return;
+      }
+
+      start();
     }

     private function start():void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPLevel.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPLevel.as
@@ -0,0 +1,608 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.olap
+{
+
+import mx.collections.IViewCursor;
+import mx.collections.ICollectionView;
+import flash.utils.Dictionary;
+import mx.collections.ArrayCollection;
+import mx.collections.IList;
+import mx.core.mx_internal;
+import mx.resources.ResourceManager;
+
+use namespace mx_internal;
+
+[ResourceBundle("olap")]
+
+/**
+ *  The OLAPLevel class represents a level in an OLAP cube.
+ *
+ *  @mxml
+ *

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

+ *

+ *  <mx:OLAPLevel
+ *    Properties
+ *    attributeName=""
+ *  />
+ *
+ *  @see mx.olap.IOLAPLevel
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class OLAPLevel extends OLAPElement implements IOLAPLevel
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Temporary location to hold the OLAPMember instance which
+     *  didn't get used. This helps is reducing the number of instances
+     *  of OLAPMembers getting created.
+     */
+    static private var tempMember:OLAPMember;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *
+     *  @param name The name of the OLAP level that includes the OLAP schema hierarchy of the element.
+     *  For example, "Time_Year", where "Year" is a level of the "Time" dimension in an OLAP schema.
+     *
+     *  @param displayName The name of the OLAP level, as a String, which can be used for display.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function OLAPLevel(name:String=null, displayName:String=null)
+    {
+        OLAPTrace.traceMsg("Created Level: " + name, OLAPTrace.TRACE_LEVEL_3);
+        super(name, displayName);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  A map of members based on their unique name.
+     */
+    private var _membersMapOnUName:Dictionary = new Dictionary(true);
+
+    /**
+     *  @private
+     *  A map of members based on their name.
+     *  The value is an array.
+     */
+    private var _membersMapOnName:Dictionary = new Dictionary(true);
+
+    /**
+     *  @private
+     *  A list of members as they were added to the level.
+     */
+    private var orderedMembers:ArrayCollection = new ArrayCollection;
+
+    /**
+    *  @private
+    *  The all member name used at a level.
+    */
+    private var _allMemberName:String = "(All)";
+
+    /**
+     *  @private
+     *  The all member objecct for this level
+     */
+    mx_internal var levelAllMember:IOLAPMember;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    // name
+    //----------------------------------
+
+    /**
+     *  The value of the name property of the
+     *  OLAPAttribute instance associated with this OLAPLevel instance.
+     *  Even though this property is writable, its value is determned by the OLAPAttribute instance
+     *  associated with the level and cannot be set.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get name():String
+    {
+        if (_attribute)
+            return _attribute.name;
+        return super.name;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set name(value:String):void
+    {
+        OLAPTrace.traceMsg("Attempt to set the name of a level. Name of a level is defined by the associated attribute", OLAPTrace.TRACE_LEVEL_1);
+    }
+
+    //----------------------------------
+    // uniqueName
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get uniqueName():String
+    {
+        return String("[" + hierarchy.dimension.name + "].[" + hierarchy.name + "].[" + name + "]");
+    }
+
+    //----------------------------------
+    // attribute
+    //----------------------------------
+
+    /**
+     *  @private
+     *  The attribute connected to this level.
+     */
+    private var _attribute:OLAPAttribute;
+
+    /**
+     *  The attribute connected to this level, as an instance of OLAPAttribute.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get attribute():OLAPAttribute
+    {
+        return _attribute;
+    }
+
+    //----------------------------------
+    // attributeName
+    //----------------------------------
+
+    private var _attributeName:String;
+
+    /**
+     *  The name of the attribute to be used at this level.
+     *  The value of this property corresponds to the value of the
+     *  OLAPAttribute.name property for the corresponding attribute.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get attributeName():String
+    {
+        return _attributeName;
+    }
+
+    /**
+     *  @private
+     */
+    public function set attributeName(value:String):void
+    {
+        _attributeName = value;
+    }
+
+    //----------------------------------
+    // child
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get child():IOLAPLevel
+    {
+        var levels:IList = OLAPHierarchy(hierarchy).allLevels;
+        var index:int = levels.getItemIndex(this);
+
+        if (index < levels.length-1)
+            return levels.getItemAt(index+1) as IOLAPLevel;
+
+        return null;
+    }
+
+    //----------------------------------
+    // dataField
+    //----------------------------------
+
+    /**
+     *  The field of the input data set
+     * that provides the data for this OLAPLevel instance.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get dataField():String
+    {
+        if (_attribute)
+            return _attribute.dataField;
+
+        return null;
+    }
+
+    //----------------------------------
+    // dataFunction
+    //----------------------------------
+
+    /**
+     *  @private
+     *  A callback function which would be called
+     *  to get the data value for this particular level.
+     *  Users can create calculated members by providing this function.
+     *  Example : If input data contains ages(1, 4, 9, 10, 12, 15, 20 etc) of people a new Attribute
+     *  can be defined to return age groups (1-10, 11-20 etc).
+     */
+    mx_internal function get dataFunction():Function
+    {
+        if (_attribute)
+            return _attribute.dataFunction;
+
+        return null;
+    }
+
+    //----------------------------------
+    // dataCompareFunction
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    mx_internal function get dataCompareFunction():Function
+    {
+        if (_attribute)
+            return _attribute.dataCompareFunction;
+
+        return null;
+    }
+
+    //----------------------------------
+    // depth
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get depth():int
+    {
+        return OLAPHierarchy(hierarchy).allLevels.getItemIndex(this);
+    }
+
+    //----------------------------------
+    // hierarchy
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _hierarchy:IOLAPHierarchy;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get hierarchy():IOLAPHierarchy
+    {
+        return _hierarchy;
+    }
+
+    /**
+     *  @private
+     */
+    public function set hierarchy(h:IOLAPHierarchy):void
+    {
+        _hierarchy = h;
+    }
+
+    //----------------------------------
+    // members
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get members():IList
+    {
+        if (hierarchy.allMemberName == name)
+            return getMembers();
+        return getMembers(false);
+    }
+
+    //----------------------------------
+    // parent
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get parent():IOLAPLevel
+    {
+        var levels:IList = OLAPHierarchy(hierarchy).allLevels;
+        var index:int = levels.getItemIndex(this);
+        if (index >= 1)
+            return levels.getItemAt(index-1) as IOLAPLevel;
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function findMember(name:String):IList
+    {
+        return _membersMapOnName[name];
+    }
+
+    /**
+     *  @private
+     *  Adds a member to the level.
+     *
+     *  @param m The member to add.
+     *
+     *  @return true if the member is added, and false if not.
+     */
+    mx_internal function addMember(m:OLAPMember):Boolean
+    {
+        m.level = this;
+        var member:Object = _membersMapOnUName[m.uniqueName];
+        if (member)
+        {
+            member = _membersMapOnName[m.name];
+	        if (member)
+	            return false;
+        }
+
+        _membersMapOnUName[m.uniqueName] = m;
+        if (_membersMapOnName[m.name])
+        {
+            _membersMapOnName[m.name].addItem(m);
+        }
+        else
+        {
+            _membersMapOnName[m.name] = new ArrayCollection();
+            _membersMapOnName[m.name].addItem(m);
+        }
+        orderedMembers.addItem(m);
+        return true;
+    }
+
+    /**
+     *  @private
+     *  Creates a new IOLAPMember instance and add it to the level.
+     *
+     *  @param parent The parent of the member.
+     *
+     *  @param name The name of the member.
+     *
+     *  @return The IOLAPMember instance that represents the new member.
+     */
+    mx_internal function createMember(parent:IOLAPMember, name:String):IOLAPMember
+    {
+        var member:OLAPMember;// = _membersMap[name];
+        //we need to create a new member if the parents are different
+        //if (!member || member.parent != parent)
+        {
+        	if (tempMember)
+        	{
+        		member = tempMember;
+                //initialize the name explicitly
+        		member.name = name;
+        	}
+        	else
+            member = new OLAPMember(name);
+            member.parent = parent;
+            member.level = this;
+            member.dimension = dimension;
+
+            //should we map this using unique name?
+            //if (!_membersMap[name])
+            //  _membersMap[name] = [];
+            //_membersMap[name].push(member);
+            if (!_membersMapOnUName[member.uniqueName])
+            {
+            	tempMember = null;
+
+	            if (attribute && attribute.displayNameFunction != null)
+    	        	member.displayName = attribute.displayNameFunction(name);
+
+                _membersMapOnUName[member.uniqueName] = member;
+
+                if (_membersMapOnName[member.name])
+                {
+                    _membersMapOnName[member.name].addItem(member);
+                }
+                else
+                {
+                    _membersMapOnName[member.name] = new ArrayCollection;
+                    _membersMapOnName[member.name].addItem(member);
+                }
+
+                orderedMembers.addItem(member);
+
+	            if (parent)
+	            {
+	                //OLAPTrace.traceMsg("Member parent: " + parent.name, OLAPTrace.TRACE_LEVEL_3);
+	                //add the member to its parent
+	                OLAPMember(parent).addChild(member);
+	            }
+	        }
+    	    else
+            {
+            	tempMember = member;
+                member = _membersMapOnUName[member.uniqueName];
+            }
+        }
+        //else
+        //  OLAPTrace.traceMsg("Trying to create a member again:" + member.name, OLAPTrace.TRACE_LEVEL_3);
+        return member;
+    }
+
+    /**
+     * @private
+     */
+    mx_internal function getMembers(includeAll:Boolean=true):ArrayCollection //of IOLAPMembers
+    {
+        if (includeAll)
+            return orderedMembers;
+
+        var tempArray:Array = orderedMembers.source.slice(0);
+        var temp:ArrayCollection = new ArrayCollection(tempArray);
+        var tempIndex:int = temp.getItemIndex(levelAllMember);
+        if (tempIndex > -1)
+            temp.removeItemAt(tempIndex);
+        return temp;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function refresh():void
+    {
+        var message:String;
+        if (!findMember(_allMemberName))
+            levelAllMember = createMember(null, _allMemberName)
+
+        if (_attributeName)
+        {
+            _attribute = OLAPDimension(dimension).findAttribute(_attributeName) as OLAPAttribute;
+            if (!_attribute)
+            {
+                message = ResourceManager.getInstance().getString(
+                    "olap", "invalidAttributeName", [_attributeName]);
+                throw Error(message);
+            }
+        }
+        else
+        {
+            if (OLAPHierarchy(hierarchy).allLevel != this)
+            {
+                message = ResourceManager.getInstance().getString(
+                    "olap", "noAttributeForLevel", [hierarchy.name]);
+                throw Error(message);
+            }
+        }
+    }
+
+    /**
+     *  @private
+     *  Removes a member from the level.
+     *
+     *  @param m The IOLAPMember instance that identifies the member to remove.
+     */
+    mx_internal function removeMember(m:IOLAPMember):void
+    {
+        if (m)
+        {
+            delete _membersMapOnUName[m.uniqueName];
+            var list:IList = _membersMapOnName[m.name];
+            var index:int = list.getItemIndex(m);
+            if (index > -1)
+                list.removeItemAt(index);
+        }
+
+    }
+
+    /**
+     *  @private
+     *  Removes a member from the level.
+     *
+     *  @param name The name of the member to remove.
+     */
+    mx_internal function removeMemberByName(name:String):void
+    {
+        var m:IOLAPMember = _membersMapOnUName[name];
+        if (m)
+            removeMember(m);
+        else
+        {
+            var list:IList = _membersMapOnName[name];
+            if (list.length == 1)
+                removeMember(list.getItemAt(0) as IOLAPMember);
+        }
+    }
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

 package mx.rpc.soap.mxml
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19776
Author:   mhorn@adobe.com
Date:     2011-01-17T16:25:29.045575Z

Log Message:
-----------
ASDoc updates for text prompt feature

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/TextInputSkin.mxml</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/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -177,6 +177,7 @@
  *    labelToItemFunction="null"
  *    maxChars="0"
  *    openOnInput="true"
+ *    prompt="null"
  *    restrict=""
  *
  *    Styles
@@ -420,10 +421,28 @@
     private var promptChanged:Boolean;

     /**
+     *  Text to be displayed if/when the input text is null.
+     *
+     *
Prompt text appears when the control is first created. Prompt text disappears
+     *  when the control gets focus, when the input text is non-null, or when an item in the list is selected.
+     *  Prompt text reappears when the control loses focus, but only if no text was entered
+     *  (if the value of the text field is null or the empty string).

+     *
+     *
You can change the style of the prompt text with CSS. If the control has prompt text
+     *  and is not disabled, the style is defined by the normalWithPrompt pseudo selector.
+     *  If the control is disabled, then the styles defined by the disabledWithPrompt pseudo selector are used.

+     *
+     *
The following example CSS changes the color of the prompt text in TextInput controls. The ComboBox control uses
+     *  a TextInput control as a subcomponent for the prompt text and input, so its prompt text changes when you use this CSS:
+     *

+     *  @namespace s "library://ns.adobe.com/flex/spark";
+     *  s|TextInput:normalWithPrompt {
+     *      color: #CCCCFF;
+     *  }
+     *

+     *

+     *
      *  @default null
-     *
-     *  Text to be displayed if/when the actual
-     *  text property is a null or empty string.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.2


Transferred from the Adobe Open Source Subversion Repository

Revision: 3581
Author:   egeorgie@adobe.com
Date:     2008-10-10T23:52:26.296427Z

Log Message:
-----------
Fix for "http://bugs.adobe.com/jira/browse/SDK-15886 percentSize is not consistent between GraphicElement and UIComponent"

Reviewed by Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.as
@@ -221,7 +221,7 @@
             }
             else if (!isNaN(layoutItem.percentSize.x))
             {
-                childWidth = unscaledWidth * Math.min(layoutItem.percentSize.x, 1);
+                childWidth = unscaledWidth * Math.min(layoutItem.percentSize.x * 0.01, 1);
                 itemMaxSize.x = Math.min(itemMaxSize.x,
                     maxSizeToFitIn(unscaledWidth, hCenter, left, right, childX));
             }
@@ -232,7 +232,7 @@
             }
             else if (!isNaN(layoutItem.percentSize.y))
             {
-                childHeight = unscaledHeight * Math.min(layoutItem.percentSize.y, 1);
+                childHeight = unscaledHeight * Math.min(layoutItem.percentSize.y * 0.01, 1);
                 itemMaxSize.y = Math.min(itemMaxSize.y,
                     maxSizeToFitIn(unscaledHeight, vCenter, top, bottom, childY));
             }