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

--- frameworks/projects/framework/src/mx/utils/XMLNotifier.as
+++ frameworks/projects/framework/src/mx/utils/XMLNotifier.as
@@ -0,0 +1,196 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.utils
+{
+
+import flash.utils.Dictionary;
+import mx.core.mx_internal;
+import mx.utils.IXMLNotifiable;
+
+use namespace mx_internal;
+
+/**
+ *  Used for watching changes to XML and XMLList objects.
+ *  Those objects are not EventDispatchers, so if multiple elements
+ *  want to watch for changes they need to go through this mechanism.
+ *  Call watchXML(), passing in the same notification
+ *  function that you would pass to XML.notification.
+ *  Use unwatchXML() to remove that notification.
+ *
+ */
+public class XMLNotifier
+{
+	include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+	 *  XMLNotifier is a singleton.
+	 */
+    private static var instance:XMLNotifier;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Get the singleton instance of the XMLNotifier.
+     */
+    public static function getInstance():XMLNotifier
+    {
+        if (!instance)
+            instance = new XMLNotifier(new XMLNotifierSingleton());
+
+		return instance;
+    }
+
+    /**
+	 *  @private
+     *  Decorates an XML node with a notification function
+	 *  that can fan out to multiple targets.
+     */
+    mx_internal static function initializeXMLForNotification():Function
+    {
+    	var notificationFunction:Function = function(currentTarget:Object,
+													 ty:String,
+													 tar:Object,
+													 value:Object,
+													 detail:Object):void
+	    {
+	        var xmlWatchers:Dictionary = arguments.callee.watched;
+	        if (xmlWatchers != null)
+	        {
+	            for (var notifiable:Object in xmlWatchers)
+	            {
+	                IXMLNotifiable(notifiable).xmlNotification(currentTarget, ty, tar, value, detail);
+	            }
+	        }
+	    }
+
+	    return notificationFunction;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *  XMLNotifier is a singleton class, so you do not use
+	 *  the new operator to create multiple instances of it.
+	 *  Instead, call the static method XMLNotifider.getInstance()
+	 *  to get the sole instance of this class.
+     */
+    public function XMLNotifier(x:XMLNotifierSingleton)
+    {
+		super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Given an XML or XMLList, add the notification function
+	 *  to watch for changes.
+     *
+     *  @param xml XML/XMLList object to watch.
+     *  @param notification Function that needs to be called.
+	 *  @param optional UID for object
+     */
+    public function watchXML(xml:Object, notifiable:IXMLNotifiable, uid:String = null):void
+    {
+		var xitem:XML = XML(xml);
+
+		// First make sure the xml node has a notification function.
+    	var watcherFunction:Object = xitem.notification();
+    	if (!(watcherFunction is Function))
+		{
+    		watcherFunction = initializeXMLForNotification();
+			xitem.setNotification(watcherFunction as Function);
+			if (uid && watcherFunction["uid"] == null)
+				watcherFunction["uid"] = uid;
+		}
+
+    	// Watch lists are maintained on the notification function.
+		var xmlWatchers:Dictionary;
+        if (watcherFunction["watched"] == undefined)
+        	watcherFunction["watched"] = xmlWatchers = new Dictionary(true);
+        else
+        	xmlWatchers = watcherFunction["watched"];
+
+        xmlWatchers[notifiable] = true;
+    }
+
+    /**
+     *  Given an XML or XMLList, remove the specified notification function.
+	 *
+	 *  @param xml XML/XMLList object to un-watch.
+     *  @param notification Function notification function.
+     */
+    public function unwatchXML(xml:Object, notifiable:IXMLNotifiable):void
+    {
+		var xitem:XML = XML(xml);
+
+		var watcherFunction:Object = xitem.notification();
+    	if (!(watcherFunction is Function))
+			return;
+
+		var xmlWatchers:Dictionary;
+        if (watcherFunction["watched"] != undefined)
+        {
+            xmlWatchers = watcherFunction["watched"];
+        	delete xmlWatchers[notifiable];
+
+        }
+    }
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Helper class: XMLNotifierSingleton
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  @private
+ */
+class XMLNotifierSingleton
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function XMLNotifierSingleton()
+	{
+		super();
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6404
Author:   rfrishbe@adobe.com
Date:     2009-04-30T00:34:09.399480Z

Log Message:
-----------
Finishing up VideoPlayer/VideoElement. Added support for streaming videos and fixed a few of the bugs.  Added the skins from XD.  These still need a little tweaking, and I'll go over them with XD. For the skins, I had to add some new sub-components, like the VideoPlayerVolumeBar and VideoPlayScrubBar.

Also added 3 new events for TrackBase (thumbDrag, thumbPress, thumbRelease).  These were in Halo's Slider, and I needed them for the VideoPlayerScrubBar.

Also fixed some other bugs, like needing to call removeDynamicPartInstance() on the Slider when the dataTip is removed.  Also fixed a bug around alternatingItemsColor for ItemRenderer.

QE Notes: -
Doc Notes: -
Bugs: SDK-19486, SDK-20105, SDK-20789
Reviewer: Glenn, Jason
tests: checkintests, some mustella tests were failing, but seemed like random 1 pixel differences in DropDownList.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBarMuteButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamItem.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenButtonSkin.mxml</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="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarThumbSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerScrubBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenFullScreenButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/swfobject/index.template.html</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.as
@@ -84,7 +84,7 @@
      */
     override protected function calculateThumbSize():Number
     {
-        return thumb.getLayoutBoundsHeight();
+        return thumb ? thumb.getLayoutBoundsHeight() : 0;
     }

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


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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.as
@@ -97,7 +97,7 @@

     /**
      *  @private
-     *  TODO (jszeto) Update this to also use the ILayoutElement API
+     *  FIXME (jszeto): Update this to also use the ILayoutElement API
      */
     override protected function updateDataTip(dataTipInstance:IDataRenderer, initialPosition:Point):void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Fixed function which returning sample position index for given time in recording

--- flash/MicrophoneRecorder.as
+++ flash/MicrophoneRecorder.as
@@ -228,15 +228,14 @@
       }
     }

-    private function getSamplePosition(time:Number=0):uint {
-      // time is a number of miliseconds
+    private function getSamplePosition(time:Number):uint {
+      // time is a number of milliseconds
+      var position:uint = 0;
+      if (time == 0) return position;
       var data:ByteArray = this.getSoundBytesResampled();
-      var samplesLength:int = data.length;
-      var position:uint = data.position;
-      if (time > 0) {
+      var bytesLength:int = data.length;
         position = time * 44.1 * 4;
-        position = Math.min(position, samplesLength); // prevents from returning position from out of range
-      }
+      position = Math.min(position, bytesLength); // prevents from returning position from out of range
       return position;               // returns position of sample in ByteArray
     }


Fixes for VOD replay failure.

Fixes for VOD replay failure.

Also seems to improve an issue with playing same segment twice in
bitrate upshift.

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -609,8 +609,16 @@
 			const fudgeTime:Number = 0; //1.0 / 24; // Approximate acceptable jump.
 			var currentSeg:HLSManifestSegment = getSegmentBySequence(currentManifest.segments, currentSequence);
 			var newSeg:HLSManifestSegment = currentSeg ? getSegmentContainingTime(newManifest.segments, currentSeg.startTime + (end ? currentSeg.duration + fudgeTime : 0) , end) : null;
+
+			// When in live stream, try to keep things in bound.
 			if(newSeg == null)
 			{
+				if(currentManifest.streamEnds)
+				{
+					trace("Bailing, we don't apply boundaries in VOD.");
+					return -1;
+				}
+
 				trace("Remapping from " + currentSequence);

 				if(currentSeg)
@@ -748,7 +756,7 @@

 			// Update our manifest for this quality level.
 			//trace("Changing from " + lastQuality + " to " + reloadingQuality);
-			//lastQuality = reloadingQuality;
+			lastQuality = reloadingQuality;

 			// Update last sequence state.
 			updateLastSequence(newManifest, newSequence);


[Mangui.Level] Fix redundantStreamId param type

--- src/org/mangui/hls/model/Level.as
+++ src/org/mangui/hls/model/Level.as
@@ -70,7 +70,7 @@
         }

         // when switching to a redundant stream, reset fragments. they will be retrieved from new playlist
-        public function set redundantStreamId(id) : void {
+        public function set redundantStreamId(id : int) : void {
             if(id < urls.length && id != _redundantStreamId) {
                 _redundantStreamId = id;
                 fragments = new Vector.<Fragment>();


Even if object appears to be a collection by reference, it is not when object is root of encoding graph

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -235,17 +235,17 @@
             parentNode.parentNode = xmlDocument;
         }

-        encodeValue(obj, qname, parentNode);
+        encodeValue(obj, qname, parentNode, true, false, true);

         return xmlDocument;
     }

-    public function encodeReference(obj:Object, q:*, parentNode:XMLNode):XMLNode
+    internal function encodeReference(obj:Object, q:*, parentNode:XMLNode):XMLNode
     {
         return encodeValue(obj, q, parentNode, false, true);
     }

-    public function encodeValue(obj:Object, q:*, parentNode:XMLNode, recurse:Boolean=true, referenceOnly:Boolean=false):XMLNode
+    internal function encodeValue(obj:Object, q:*, parentNode:XMLNode, recurse:Boolean=true, referenceOnly:Boolean=false, isRoot:Boolean=false):XMLNode
     {
         var qname:XObjQName = new XObjQName();

@@ -303,6 +303,10 @@
             newNode.nodeName = XObjUtils.encodeElementTag(qname, newNode);
             return newNode;
         }
+        else if (isRoot)
+        {
+            return internal_encodeValue(obj, qname, parentNode);
+        }
         else if (referenceOnly)
         {
             return internal_encodeValue(obj, qname, parentNode, false, true);
@@ -310,7 +314,7 @@
         else if (recurse)
         {
             if (obj is IXObjReference &&
-                ((obj as IXObjReference).isByReference || obj["id"] != null))
+                    ((obj as IXObjReference).isByReference || obj["id"] != null))
             {
                 // don't recurse refs that have IDs since this means they are
                 // *by reference* uses relationships, not strict containment
@@ -327,7 +331,7 @@
         }
     }

-    protected function internal_encodeValue(obj:Object,
+    internal function internal_encodeValue(obj:Object,
                                             qname:XObjQName,
                                             parentNode:XMLNode,
                                             recurse:Boolean=true,


Transferred from the Adobe Open Source Subversion Repository

Revision: 17692
Author:   chiedozi@adobe.com
Date:     2010-09-14T00:28:56.001477Z

Log Message:
-----------
Integrated revision 17684 from beta branch

Log Message:
***********
Corrected the spelling of the registerPersistenceClassAlias method in MobileApplicationBase

QE notes:
Doc notes:
Bugs: SDK-27797
Reviewer: Evtim
Tests run:
Is noteworthy for integration:

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -520,9 +520,9 @@
     /**
      *  @private
      */
-    override protected function registerPeristenceClassAliases():void
-    {
-        super.registerPeristenceClassAliases();
+    override protected function registerPersistenceClassAliases():void
+    {
+        super.registerPersistenceClassAliases();

         // Register aliases for custom classes that will be written to
         // persistence store by navigator


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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Unmute fixed

Unmute fixed

unmuteMicrophone now returns if the gain value is not 0.

--- src/Player.as
+++ src/Player.as
@@ -242,6 +242,10 @@

     public function unmuteMicrophone():void {
       var mic:Microphone = Microphone.getMicrophone();
+
+      if (mic.gain !== 0)
+        return;
+
       mic.gain = this.savedMicrophoneVolume;
       audioTransmit.start();
     }


Added contants for fullscreen events

Added contants for fullscreen events

--- src/Player.as
+++ src/Player.as
@@ -29,6 +29,9 @@
   [SWF(backgroundColor="#efefef")]

   public class Player extends Sprite {
+    private static const EVENT_FULLSCREEN_ENTERED:String  = "fullscreenEntered";
+    private static const EVENT_FULLSCREEN_EXITED:String  = "fullscreenExited";
+
     private var config:Object = {
       'buffer': 1,
       'scaleUp': false,
@@ -112,7 +115,7 @@
       if (config.allowFullscreen) {
         this.stage.displayState = (StageDisplayState.NORMAL === stage.displayState) ?
           StageDisplayState.FULL_SCREEN : StageDisplayState.NORMAL;
-          (StageDisplayState.NORMAL === stage.displayState) ? this.callAPI("fullscreenExited") : this.callAPI("fullscreenEntered");
+          (StageDisplayState.NORMAL === stage.displayState) ? this.callAPI(EVENT_FULLSCREEN_EXITED) : this.callAPI(EVENT_FULLSCREEN_ENTERED);
       }
     }


don't fail if fontsize value includes "px"

--- plugins/closedCaptionsPlugin/src/com/kaltura/kdpfl/plugin/component/ClosedCaptions.as
+++ plugins/closedCaptionsPlugin/src/com/kaltura/kdpfl/plugin/component/ClosedCaptions.as
@@ -375,7 +375,7 @@
 			}
 			tf.color = Number(colorString);
 			tf.font = style.@xmlns_tts::fontFamily.length() ? style.@xmlns_tts::fontFamily[0].toString() : defaultFontFamily;
-			tf.size = style.@xmlns_tts::fontSize.length() ? style.@xmlns_tts::fontSize[0].toString() : defaultFontSize;
+			tf.size = style.@xmlns_tts::fontSize.length() ? String(style.@xmlns_tts::fontSize[0].toString()).replace("px","") : defaultFontSize;

 			return tf;


Disable tracking when `streamio:tracker' is empty.

--- src/goplayer/StreamioAPI.as
+++ src/goplayer/StreamioAPI.as
@@ -34,7 +34,10 @@

     private function reportMovieEvent
       (movieID : String, event : String, parameters : Object) : void
-    { post(statsPath, getStatsParameters(movieID, event, parameters)) }
+    {
+      if (trackerID != null && trackerID != "")
+        post(statsPath, getStatsParameters(movieID, event, parameters))
+    }

     private function getStatsParameters
       (movieID : String, event : String, parameters : Object) : Object


Fixed the ParserOptions.defaultDependencyFunction.

--- src/aerys/minko/type/loader/parser/ParserOptions.as
+++ src/aerys/minko/type/loader/parser/ParserOptions.as
@@ -185,7 +185,8 @@
 			_assets						= assets;
 		}

-		private function defaultDependencyLoaderFunction(dependencyPath	: String,
+		private function defaultDependencyLoaderFunction(dependencyId	: String,
+														 dependencyPath	: String,
 														 isTexture		: Boolean,
 														 options		: ParserOptions) : ILoader
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 12764
Author:   gosmith@adobe.com
Date:     2009-12-10T02:06:04.655479Z

Log Message:
-----------
Dealt with issues involving accessibility and skin parts.

1. The accessibility implementation classes for four Spark components -- ComboBox, NumericStepper, TitleWindow, and VideoPlayer -- need to listen to events dispatched from skin parts. The problems were:

a) Skin parts may not exist at the time that the acc impl constructor executes, which is when we were doing addEventListener() on them. This is now fixed by consistently having null checks.

b) Skin parts may come and go at any later time. We now cope with this by having the acc impls listen for "partAdded" and "partRemoved" events from the component. When they discover that a skin part they want to listen to is being added, they now call addEventListener(), and when a skin part is removed they call removeEventListener().

2. The accessibility implementation classes for two Spark components -- Panel and TitleWindow -- actually get attached to a skin part (the titleDisplay) rather than to the component. Since we do this in createAccessibilityImplementation(), it's a problem if this happens before the titleDisplay exists. So instead of calling createAccessibilityImplementation() from initializeAccessibiility(), these components now call it from partAdded(). They also remove the acc impl if the titleDisplay is removed. Finally, there is some logic to prevent the partAdded() method of TitleWindow, which is a subclass of Panel, from creating both a PanelAccImpl and a TitleWindowAccImpl.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/VideoPlayerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TitleWindowAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as
@@ -11,217 +11,254 @@

 package spark.accessibility
 {
-    import flash.accessibility.Accessibility;
-    import flash.events.Event;
-    import flash.events.FocusEvent;
-
+
+import flash.accessibility.Accessibility;
+import flash.events.Event;
+import flash.events.FocusEvent;
+
 import mx.accessibility.AccConst;
-    import mx.core.UIComponent;
-    import mx.core.mx_internal;
-
-    import spark.components.ComboBox;
-    import spark.events.IndexChangeEvent;
-
-    use namespace mx_internal;
-
-    /**
-     *  ComboBoxAccImpl is a subclass of AccessibilityImplementation
-     *  which implements accessibility for the ComboBox class.
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+
+import spark.components.ComboBox;
+import spark.components.TextInput;
+import spark.events.IndexChangeEvent;
+import spark.events.SkinPartEvent;
+
+use namespace mx_internal;
+
+/**
+ *  ComboBoxAccImpl is a subclass of AccessibilityImplementation
+ *  which implements accessibility for the ComboBox class.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public class ComboBoxAccImpl extends DropDownListBaseAccImpl
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Enables accessibility in the ComboBox class.
+     *
+     *
This method is called by application startup code
+     *  that is autogenerated by the MXML compiler.
+     *  Afterwards, when instances of ComboBox are initialized,
+     *  their accessibilityImplementation property
+     *  will be set to an instance of this class.

      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public class ComboBoxAccImpl extends DropDownListBaseAccImpl
-    {
-        include "../core/Version.as";
+    public static function enableAccessibility():void
+    {
+        ComboBox.createAccessibilityImplementation =
+            createAccessibilityImplementation;
+    }
+
+    /**
+     *  @private
+     *  Creates a ComboBox's AccessibilityImplementation object.
+     *  This method is called from UIComponent's
+     *  initializeAccessibility() method.
+     */
+    mx_internal static function createAccessibilityImplementation(
+        component:UIComponent):void
+    {
+        component.accessibilityImplementation =
+            new ComboBoxAccImpl(component);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param master The UIComponent instance that this AccImpl instance
+     *  is making accessible.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function ComboBoxAccImpl(master:UIComponent)
+    {
+        super(master);

-        //--------------------------------------------------------------------------
-        //
-        //  Class methods
-        //
-        //--------------------------------------------------------------------------
+		// ComboBox has a TextInput as a skin part,
+		// and we need to listen to some of its events.
+		// It may or may not be present when this constructor is called.
+		// If it comes or goes later, we are notified via
+		// "partAdded" and "partRemoved" events.
+		var textInput:TextInput = ComboBox(master).textInput;
+		if (textInput)
+			textInput.addEventListener(Event.CHANGE, textInputChangeHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: AccImpl
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  eventsToHandle
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Array of events that we should listen for from the master component.
+     */
+    override protected function get eventsToHandle():Array
+    {
+		return super.eventsToHandle.concat([ FocusEvent.FOCUS_IN,
+											 SkinPartEvent.PART_ADDED,
+											 SkinPartEvent.PART_REMOVED ]);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: AccessibilityImplementation
+    //
+    //--------------------------------------------------------------------------
+    /**
+
+    /**
+     *  @private
+     *  IAccessible method for returning the value of the ComboBox
+     *  (which would be the text of the item selected
+     *  or the text entered in textInput).
+     *  @param childID uint
+     *
+     *  @return Value String
+     */
+    override public function get_accValue(childID:uint):String
+    {
+        var comboBox:ComboBox = ComboBox(master);
+        if (childID == 0)
+            return comboBox.selectedIndex == -1 ?
+                comboBox.textInput.text :comboBox.selectedItem;
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: AccImpl
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Method for returning the name of the ListItem/ComboBox
+     *  which is spoken out by the screen reader.
+     *
+     *  @param childID uint
+     *
+     *  @return Name String
+     */
+    override protected function getName(childID:uint):String
+    {
+        if (childID == 0)
+            return "";
+        var comboBox:ComboBox = ComboBox(master);
+        if (childID < 0 || childID > comboBox.dataProvider.length)
+            return "";
+        else
+            return comboBox.dataProvider.getItemAt(childID - 1).toString();

-        /**
-         *  Enables accessibility in the ComboBox class.
-         *
-         *
This method is called by application startup code
-         *  that is autogenerated by the MXML compiler.
-         *  Afterwards, when instances of ComboBox are initialized,
-         *  their accessibilityImplementation property
-         *  will be set to an instance of this class.

-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 1.5
-         *  @productversion Flex 4
-         */
-        public static function enableAccessibility():void
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: AccImpl
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Override the generic event handler.
+     *  All AccImpl must implement this
+     *  to listen for events from its master component.
+     */
+    override protected function eventHandler(event:Event):void
+    {
+		var textInput:TextInput;
+
+        switch (event.type)
         {
-            ComboBox.createAccessibilityImplementation =
-                createAccessibilityImplementation;
+            case "IndexChangeEvent":
+            {
+                var tweaked_event:Event = event.clone();
+                IndexChangeEvent(tweaked_event).oldIndex += 1;
+                IndexChangeEvent(tweaked_event).newIndex += 1;
+                super.eventHandler(tweaked_event);
+                break;
+            }
+
+            case "open":
+            {
+                Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_STATECHANGE);
+                break;
+            }
+
+            case "focusIn":
+            {
+                Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_FOCUS);
+                break;
+            }
+
+			case SkinPartEvent.PART_ADDED:
+			{
+				textInput = ComboBox(master).textInput;
+				if (SkinPartEvent(event).instance == textInput)
+				{
+					textInput.addEventListener(Event.CHANGE,
+											   textInputChangeHandler);
+				}
+				break;
+			}
+
+			case SkinPartEvent.PART_REMOVED:
+			{
+				textInput = ComboBox(master).textInput;
+				if (SkinPartEvent(event).instance == textInput)
+				{
+					textInput.removeEventListener(Event.CHANGE,
+												  textInputChangeHandler);
+				}
+				break;
+			}
+
+            default:
+            {
+                super.eventHandler(event);
+            }
         }
-
-        /**
-         *  @private
-         *  Creates a ComboBox's AccessibilityImplementation object.
-         *  This method is called from UIComponent's
-         *  initializeAccessibility() method.
-         */
-        mx_internal static function createAccessibilityImplementation(
-            component:UIComponent):void
-        {
-            component.accessibilityImplementation =
-                new ComboBoxAccImpl(component);
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Constructor
-        //
-        //--------------------------------------------------------------------------
-
-        /**
-         *  Constructor.
-         *
-         *  @param master The UIComponent instance that this AccImpl instance
-         *  is making accessible.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 1.5
-         *  @productversion Flex 4
-         */
-        public function ComboBoxAccImpl(master:UIComponent)
-        {
-            super(master);
-
-            ComboBox(master).textInput.addEventListener(Event.CHANGE,
-                textInputChangeHandler);
-        }
-
-        /**
-         *  @private
-         */
-        private function textInputChangeHandler(event:Event):void
-        {
-            Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_VALUECHANGE);
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden properties: AccImpl
-        //
-        //--------------------------------------------------------------------------
-
-        //----------------------------------
-        //  eventsToHandle
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Array of events that we should listen for from the master component.
-         */
-        override protected function get eventsToHandle():Array
-        {
-            return super.eventsToHandle.concat([FocusEvent.FOCUS_IN]);
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden methods: AccessibilityImplementation
-        //
-        //--------------------------------------------------------------------------
-        /**
-
-        /**
-         *  @private
-         *  IAccessible method for returning the value of the ComboBox
-         *  (which would be the text of the item selected
-         *  or the text entered in textInput).
-         *  @param childID uint
-         *
-         *  @return Value String
-         */
-        override public function get_accValue(childID:uint):String
-        {
-            var comboBox:ComboBox = ComboBox(master);
-            if (childID == 0)
-                return comboBox.selectedIndex == -1 ?
-                    comboBox.textInput.text :comboBox.selectedItem;
-            return null;
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden methods: AccImpl
-        //
-        //--------------------------------------------------------------------------
-
-        /**
-         *  @private
-         *  Method for returning the name of the ListItem/ComboBox
-         *  which is spoken out by the screen reader.
-         *
-         *  @param childID uint
-         *
-         *  @return Name String
-         */
-        override protected function getName(childID:uint):String
-        {
-            if (childID == 0)
-                return "";
-            var comboBox:ComboBox = ComboBox(master);
-            if (childID < 0 || childID > comboBox.dataProvider.length)
-                return "";
-            else
-                return comboBox.dataProvider.getItemAt(childID - 1).toString();
-
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden event handlers: AccImpl
-        //
-        //--------------------------------------------------------------------------
-
-        /**
-         *  @private
-         *  Override the generic event handler.
-         *  All AccImpl must implement this
-         *  to listen for events from its master component.
-         */
-        override protected function eventHandler(event:Event):void
-        {
-            switch (event.type)
-            {
-                case "IndexChangeEvent":
-                {
-                    var tweaked_event:Event = event.clone();
-                    IndexChangeEvent(tweaked_event).oldIndex += 1;
-                    IndexChangeEvent(tweaked_event).newIndex += 1;
-                    super.eventHandler(tweaked_event);
-                    break;
-                }
-                case "open":
-                {
-                    Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_STATECHANGE);
-                    break;
-                }
-                case "focusIn":
-                {
-                    Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_FOCUS);
-                    break;
-                }
-                default:
-                {
-                    super.eventHandler(event);
-                }
-            }
-        }
-
-
-    }
-
+    }
+
+	/**
+	 *  @private
+	 */
+	private function textInputChangeHandler(event:Event):void
+	{
+		Accessibility.sendEvent(master, 0, AccConst.EVENT_OBJECT_VALUECHANGE);
+	}
 }
+
+}
+


- change: LabelButton now supports having complex content, i.e. child elements, initialized via XML

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

--- src/reprise/controls/LabelButton.as
+++ src/reprise/controls/LabelButton.as
@@ -97,17 +97,6 @@
 			m_lastStyles = m_currentStyles;
 		}

-		/**
-		 * Just pass the content on to the labelDisplay
-		 */
-		protected override function parseXMLContent(node : XML) : void
-		{
-			if (node.children().length())
-			{
-				m_labelDisplay.setLabel(node.children().toXMLString());
-			}
-		}
-
 		protected override function buttonDisplay_click(event : MouseEvent) : void
 		{
 			if (event.target != this)


- nitpicking

- nitpicking

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

--- src/reprise/controls/LabelButton.as
+++ src/reprise/controls/LabelButton.as
@@ -64,10 +64,6 @@
 		/***************************************************************************
 		*							protected methods								   *
 		***************************************************************************/
-		protected override function initialize() : void
-		{
-			super.initialize();
-		}
 		protected override function createChildren() : void
 		{
 			m_labelDisplay = Label(addComponent('label', null, Label));


- made the CSSPropertyCache actually work
- changed the CSSPropertyCache to only use the property value and the file as the hash to allow for more caching (than was previously not done anyway ...)

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

--- src/reprise/css/CSSPropertyCache.as
+++ src/reprise/css/CSSPropertyCache.as
@@ -32,19 +32,19 @@
 		public static function propertyForKeyValue(
 			key:String, value:String, file : String) : Object
 		{
-			var prop:Object = g_propertyCache[key+"="+value+file];
+			var prop:Object = g_propertyCache[value + file];
 			if (!prop)
 			{
 				var parser : Function = CSSDeclaration.parserForProperty(key);
 				prop = parser(value, file);
-				setPropertyForKeyValue(key, value, file, prop);
+				g_propertyCache[value + file] = prop;
 			}
-			return g_propertyCache[key+"="+value];
+			return prop;
 		}
 		public static function setPropertyForKeyValue(
 			key:String, value:String, file : String, property:Object) : void
 		{
-			g_propertyCache[key+"="+value] = property;
+			g_propertyCache[value + file] = property;
 		}

 		/***************************************************************************


Fixed a bug that caused exceptions when invoking FLVPlayer#unload on an instance that wasn't fully initialized beforehand

--- src/reprise/media/AbstractPlayer.as
+++ src/reprise/media/AbstractPlayer.as
@@ -266,13 +266,16 @@
 		{
 			stop();
 			doUnload();
-			m_buffer.reset();
-			m_source.reset();
-			m_statusObserverTimer.reset();
-			m_statusObserverTimer.removeEventListener(TimerEvent.TIMER, observeStatus);
-			m_statusObserverTimer = null;
+			m_buffer && m_buffer.reset();
+			m_source && m_source.reset();
 			m_source = null;
-
+			if (m_statusObserverTimer)
+			{
+				m_statusObserverTimer.reset();
+				m_statusObserverTimer.removeEventListener(TimerEvent.TIMER, observeStatus);
+				m_statusObserverTimer = null;
+			}
+
 			if (m_status & STATUS_LOAD_FINISHED)
 			{
 				return;


karthiks version of StatementClassifierEvent

--- events/StatementClassifierEvent.as
+++ events/StatementClassifierEvent.as
@@ -1,27 +1,31 @@
-// ActionScript file
-package events{
-
-	import flash.events.Event;
-	/**
-	 * Warning: This class was reverse-engineered from the code that uses it.
-	 * We do not have the original (at this time).
-	 *
-	 * It may not have all the functionality it needs for later code.
-	 *
-	 * @author Joshua Justice
-	 */
-	public class StatementClassifierEvent extends Event
-	{
-		//public var statement:String;
-		public var statementType:int; //1 is Particular, 0 is Universial
-		public var claimIndex:int;
-		public var reasonIndex:int;
-		public function StatementClassifierEvent(type:String,statementType:int,claimIndex:int,reasonIndex:int = 0)
-		{
-			super(type);
-			this.statementType = statementType;
-			this.claimIndex = claimIndex;
-			this.reasonIndex = reasonIndex;
-		}
-	}
+/*
+
+@Author: Karthik Rangarajan
+@Version: 0
+
+@Description: This is a custom event that holds the is fired whenever the user changes his statement from universal to particular or viceversa
+*/
+
+package events
+{
+	import flash.events.Event;
+
+	public class StatementClassifierEvent extends Event
+	{
+		public var statementType:int;
+		public var claimIndex:int;
+		public var reasonIndex:int;
+		public function StatementClassifierEvent(type:String,statementType:int,claimIndex:int,reasonIndex:int=0)
+		{
+			super(type);
+			this.statementType = statementType;
+			this.claimIndex = claimIndex;
+			this.reasonIndex = reasonIndex;
+		}
+
+		override public function clone():Event{
+			return new StatementClassifierEvent(type,statementType,claimIndex,reasonIndex);
+		}
+
+	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9177
Author:   jimurphy@adobe.com
Date:     2009-08-07T21:15:07.894169Z

Log Message:
-----------
Merged 3.4 revisions 8630,8660,8683,8735,8750,8753,8755,8757,8759,8764,8776,8798,8821,8824,8837,8862,8911,8946,8949,8962,8965,9026,9109,9131,9138-9139,9147 -> trunk

integrates:
player: 10.0.32.18
AIR kit: 1.5.2.8870 (20090721ap)

checkintests: pass

(btw: I'm not happy about doing this on a Friday PM!)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Install Flash Player 10 UB.dmg</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLDecoder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/flashplayer.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Flash Player.app.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/Operation.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/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 ActiveX.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/mxml/IMXMLSupport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/ISOAPDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/install_flash_player_10_linux.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLSchemaInstance.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Text.as
+++ frameworks/projects/mx/src/mx/controls/Text.as
@@ -310,7 +310,7 @@
         if (widthChanged)
         {
             textField.wordWrap = !isNaN(explicitWidth) ||
-								 !isNaN(maxWidth) ||
+								 !isNaN(explicitMaxWidth) ||
 								 !isNaN(percentWidth);
             widthChanged = false;
         }
@@ -366,10 +366,13 @@
         }

         // Figure out the width we're going to use;
-		// explicitWidth trumps maxWidth.
-        var availableWidth:Number = !isNaN(explicitWidth) ?
-									explicitWidth :
-									maxWidth;
+		// explicitWidth trumps explicitMaxWidth.
+        var availableWidth:Number;
+
+        if (!isNaN(explicitWidth))
+            availableWidth = explicitWidth;
+        else if (!isNaN(explicitMaxWidth))
+            availableWidth = explicitMaxWidth;

         measureUsingWidth(availableWidth);
     }


Editor: Update resource browser for particle emitters

--- Bin/Data/Scripts/Editor/EditorResourceBrowser.as
+++ Bin/Data/Scripts/Editor/EditorResourceBrowser.as
@@ -49,12 +49,14 @@
 const int RESOURCE_TYPE_2D_PARTICLE_EFFECT = 18;
 const int RESOURCE_TYPE_TEXTURE_3D = 19;
 const int RESOURCE_TYPE_CUBEMAP = 20;
+const int RESOURCE_TYPE_PARTICLEEMITTER = 21;

 const StringHash XML_TYPE_SCENE("scene");
 const StringHash XML_TYPE_NODE("node");
 const StringHash XML_TYPE_MATERIAL("material");
 const StringHash XML_TYPE_TECHNIQUE("technique");
 const StringHash XML_TYPE_PARTICLEEFFECT("particleeffect");
+const StringHash XML_TYPE_PARTICLEEMITTER("particleemitter");
 const StringHash XML_TYPE_TEXTURE("texture");
 const StringHash XML_TYPE_ELEMENT("element");
 const StringHash XML_TYPE_ELEMENTS("elements");
@@ -226,7 +228,7 @@

     UIElement@ col1 = browserFilterWindow.GetChild("TypeFilterColumn1", true);
     UIElement@ col2 = browserFilterWindow.GetChild("TypeFilterColumn2", true);
-    for (int i=-2; i < 21; ++i)
+    for (int i=-2; i < 22; ++i)
     {
         if (i == RESOURCE_TYPE_NOTSET)
             continue;
@@ -1024,6 +1026,8 @@
         return RESOURCE_TYPE_TECHNIQUE;
     else if(fileType == XML_TYPE_PARTICLEEFFECT)
         return RESOURCE_TYPE_PARTICLEEFFECT;
+    else if(fileType == XML_TYPE_PARTICLEEMITTER)
+        return RESOURCE_TYPE_PARTICLEEMITTER;
     else if(fileType == XML_TYPE_TEXTURE)
         return RESOURCE_TYPE_TEXTURE;
     else if(fileType == XML_TYPE_ELEMENT)
@@ -1221,6 +1225,8 @@
             fileType = XML_TYPE_TECHNIQUE;
         else if(type == XML_TYPE_PARTICLEEFFECT)
             fileType = XML_TYPE_PARTICLEEFFECT;
+        else if(type == XML_TYPE_PARTICLEEMITTER)
+            fileType = XML_TYPE_PARTICLEEMITTER;
         else if(type == XML_TYPE_TEXTURE)
             fileType = XML_TYPE_TEXTURE;
         else if(type == XML_TYPE_ELEMENT)
@@ -1277,6 +1283,8 @@
         return "Render Technique";
     else if (resourceType == RESOURCE_TYPE_PARTICLEEFFECT)
         return "Particle Effect";
+    else if (resourceType == RESOURCE_TYPE_PARTICLEEMITTER)
+        return "Particle Emitter";
     else if (resourceType == RESOURCE_TYPE_UIELEMENT)
         return "UI Element";
     else if (resourceType == RESOURCE_TYPE_UIELEMENTS)


Let's make StageLocation's clone() actually clone it.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@961 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/stage/data/StageLocation.as
+++ src/as/com/threerings/stage/data/StageLocation.as
@@ -66,7 +66,11 @@

     public function clone () :Object
     {
-        return (ClassUtil.newInstance(this) as StageLocation);
+        var newLoc :StageLocation = (ClassUtil.newInstance(this) as StageLocation);
+        newLoc.x = x;
+        newLoc.y = y;
+        newLoc.orient = orient;
+        return newLoc;
     }

     /**


Additional fence on null values

Additional fence on null values

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
@@ -1232,6 +1232,9 @@

     private function getIDAttr(part:XMLNode):String
     {
+        if (!part)
+            return null;
+
         if ("id" in part.attributes)
             return part.attributes["id"];
         else if ("href" in part.attributes)
@@ -1242,6 +1245,9 @@

     private function getIDProperty(part:Object):String
     {
+        if (!part)
+            return null;
+
         if ("id" in part)
             return part["id"];
         else if ("href" in part)


Updating type test for int handling change.

--- test/src/org/postgresql/pegasus/util/TestGetType.as
+++ test/src/org/postgresql/pegasus/util/TestGetType.as
@@ -8,7 +8,7 @@

         public static function getTestTypes():Array {
             return [
-               [ Number(42), Number ],
+               [ Number(42), int ],
                /*
                 * The behavior for int, uint and Number is *really* weird. Essentially, AS3 seems
                 * to veer away from straight static typing here and do a sort of numerical


Added check to make sure ListBase only accepts IVirtualizedLayouts

--- src/org/openPyro/controls/listClasses/ListBase.as
+++ src/org/openPyro/controls/listClasses/ListBase.as
@@ -57,6 +57,9 @@
 		 * @see org.openpyro.layouts.IVirtualizedLayout
 		 */
 		override public function set layout(l:ILayout):void{
+			if(!(l is IVirtualizedLayout)){
+				throw new ArgumentError("ListBase can only accept IVirualizedLayout layouts");
+			}
 			super.layout = l;
 			IVirtualizedLayout(l).listBase = this;
 		}


Cleaned up unit test

Cleaned up unit test

--- test/laml/layout/StackLayoutTest.as
+++ test/laml/layout/StackLayoutTest.as
@@ -40,7 +40,7 @@
 			var xml:XML = <HBox id="root" xmlns="laml.display" padding="5" horizontalGutter="5" backgroundColor="#FF00FF" width="600" height="300">
 				<Component id="child1" percentWidth="100" percentHeight="1" backgroundColor="#FF0000" />
 				<Component id="child2" width="200" height="180" backgroundColor="#FFFF00" />
-				<Component id="child3" percentWidth="100" height="210" backgroundColor="#0000FF" />
+				<Component id="child3" percentWidth="100" height="100%" backgroundColor="#0000FF" />
 			</HBox>;
 			return xml;
 		}
@@ -93,9 +93,9 @@

 		public function testFlexibleChildrenHorizontal():void {
 			box = parser.parseLayoutable(getFlexibleHBox());
-			//addChild(box.view);
+			addChild(box.view);
 			box.render();
-			//listenToStage(box);
+			listenToStage(box);

 			var child:Layoutable = box.getChildAt(0);
 			assertRectangle(child, 5, 5, 190, 290);
@@ -156,9 +156,9 @@
 						  </VBox>;

 			box = parser.parseLayoutable(xml);
-			addChild(box.view);
+			//addChild(box.view);
 			box.render();
-			listenToStage(box);
+			//listenToStage(box);

 			var child:Layoutable = box.getChildAt(0);
 			assertRectangle(child, 10, 10, 620, 393);
@@ -169,12 +169,12 @@
 		public function testNestedComplexLayout():void {
 			var container:Component;
 			var xml:XML = <Component id="player" verticalAlign="bottom" x="200" width="640" verticalGutter="10" height="480" padding="10" backgroundColor="#FFFFFF" xmlns="laml.display">
-							<Component id="video_container" width="100%" height="100%" backgroundColor="#FFCC00" />
+							<Component id="video_container" width="100%" height="100%" backgroundColor="#33333" />
 							<VBox width="100%" height="57">
 								<HBox width="100%" height="57" padding="4" backgroundColor="#333333" backgroundAlpha=".5" horizontalGutter="4" verticalAlign="center">
 									<Component id="play_pause_button" width="50" height="100%" backgroundColor="#FF0000" />
 									<VBox width="100%" height="100%" paddingTop="18">
-										<Component id="progress_handle" width="100%" height="10" backgroundColor="#FF0000" />
+										<Component id="progress_handle" width="100%" height="10" backgroundColor="#00FF00" />
 										<Component id="title" width="99.9%" height="100%" borderSize="0" borderColor="#FF0000" />
 									</VBox>
 								</HBox>
@@ -182,9 +182,9 @@
 						  </Component>;

 			box = parser.parseLayoutable(xml);
-			addChild(box.view);
+			//addChild(box.view);
 			box.render();
-			listenToStage(box);
+			//listenToStage(box);

 			var child:Layoutable = box.getChildAt(0);
 			assertRectangle(child, 10, 10, 620, 460);


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

--- frameworks/projects/rpc/src/mx/rpc/AsyncToken.as
+++ frameworks/projects/rpc/src/mx/rpc/AsyncToken.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
 {


switch back to Function instead of Class

--- externs/GCL/src/goog/events/EventTarget.as
+++ externs/GCL/src/goog/events/EventTarget.as
@@ -43,7 +43,7 @@
      * @param cls [Function] The class constructor. The corresponding class must have already implemented the interface.
      * @see [listenable]
      */
-    public static function addImplementation(cls:Class /* Function */):void {}
+    public static function addImplementation(cls:Function):void {}

     /**
      * @param obj [(Object|null)] The object to check.


Adjust testcases.

Adjust testcases.

--- test/basic.as
+++ test/basic.as
@@ -178,6 +178,14 @@
         frak();
       }
     }
+
+    function a() {
+      var i:int = 0;
+      while(i++ < 5) {
+        hello();
+      }
+      return i;
+    }
   }

   class Switch {
@@ -210,7 +218,7 @@
       case 3:
         piyo();
       break;
-      case 5:
+      case 4:
         bar();
       break;
       default:


Decode root properly when decoding into existing object

--- as3/xobjas3/src/com/rpath/xobj/XObjDeferredDecode.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjDeferredDecode.as
@@ -36,7 +36,7 @@
         if (!rootObject)
             return decoder.actualDecodeXML(dataNode, propType);
         else
-            return decoder.actualDecodeXML(dataNode, null, rootObject, false);
+            return decoder.actualDecodeXML(dataNode, null, rootObject, true);
     }

     public function decodeXMLIntoObject(rootObject:*):Object
@@ -44,7 +44,7 @@
         if (!rootObject)
             return null;

-        return decoder.actualDecodeXML(dataNode, null, rootObject, false);
+        return decoder.actualDecodeXML(dataNode, null, rootObject, true);
     }

 }


Fix correct content length header in RTSP over HTTP

--- src/com/axis/rtspclient/RTSPoverHTTPHandle.as
+++ src/com/axis/rtspclient/RTSPoverHTTPHandle.as
@@ -74,7 +74,7 @@
       socket.addEventListener(Event.CONNECT, function ():void {
         socket.writeUTFBytes("POST " + urlParsed.urlpath + " HTTP/1.0\r\n");
         socket.writeUTFBytes("X-Sessioncookie: " + sessioncookie + "\r\n");
-        socket.writeUTFBytes("Content-Length: 32767" + "\r\n");
+        socket.writeUTFBytes("Content-Length: " + data.length + "\r\n");
         socket.writeUTFBytes("Content-Type: application/x-rtsp-tunnelled" + "\r\n");
         socket.writeUTFBytes(authHeader);
         socket.writeUTFBytes("\r\n");


Bye bye log spam, hello once again readable client logs.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -333,7 +333,7 @@

                 removeChild(loader);
                 var extra :String  = (url == _url) ? "" : (", _url=" + _url);
-                log.info("Unloaded media [url=" + url + extra + "].");
+                log.debug("Unloaded media [url=" + url + extra + "].");

             } else if (_media is VideoDisplayer) {
                 var vid :VideoDisplayer = (_media as VideoDisplayer);


Fixing JplayerStatus.as whitespace, version, and metadata.

--- actionscript/happyworm/jPlayer/JplayerStatus.as
+++ actionscript/happyworm/jPlayer/JplayerStatus.as
@@ -2,104 +2,104 @@
  * jPlayer Plugin for jQuery JavaScript Library
  * http://www.happyworm.com/jquery/jplayer
  *
- * Copyright (c) 2009 - 2011 Happyworm Ltd
+ * Copyright (c) 2009 - 2012 Happyworm Ltd
  * Dual licensed under the MIT and GPL licenses.
  *  - http://www.opensource.org/licenses/mit-license.php
  *  - http://www.gnu.org/copyleft/gpl.html
  *
  * Author: Mark J Panaghiston
- * Date: 1st September 2011
+ * Date: 12th April 2012
  */

 package happyworm.jPlayer {
-public class JplayerStatus {
+	public class JplayerStatus {

-	public static const VERSION:String = "2.1.3"; // The version of the Flash jPlayer entity.
+		public static const VERSION:String = "2.1.2"; // The version of the Flash jPlayer entity.

-	public var volume:Number = 0.5; // Not affected by reset()
-	public var muted:Boolean = false; // Not affected by reset()
+		public var volume:Number = 0.5; // Not affected by reset()
+		public var muted:Boolean = false; // Not affected by reset()

-	public var src:String;
-	public var srcError:Boolean;
+		public var src:String;
+		public var srcError:Boolean;

-	public var srcSet:Boolean;
-	public var isPlaying:Boolean;
-	public var isSeeking:Boolean;
-	public var flashIsSeeking:Boolean;
+		public var srcSet:Boolean;
+		public var isPlaying:Boolean;
+		public var isSeeking:Boolean;
+		public var flashIsSeeking:Boolean;

-	public var playOnLoad:Boolean;
-	public var playOnSeek:Boolean;
-	public var playAfterFlashIsSeeking:Boolean;
+		public var playOnLoad:Boolean;
+		public var playOnSeek:Boolean;
+		public var playAfterFlashIsSeeking:Boolean;

-	public var isStartingDownload:Boolean;
-	public var isLoading:Boolean;
-	public var isLoaded:Boolean;
+		public var isStartingDownload:Boolean;
+		public var isLoading:Boolean;
+		public var isLoaded:Boolean;

-	public var pausePosition:Number;
+		public var pausePosition:Number;

-	public var seekPercent:Number;
-	public var currentTime:Number;
-	public var currentPercentRelative:Number;
-	public var currentPercentAbsolute:Number;
-	public var duration:Number;
+		public var seekPercent:Number;
+		public var currentTime:Number;
+		public var currentPercentRelative:Number;
+		public var currentPercentAbsolute:Number;
+		public var duration:Number;

-	public var metaDataReady:Boolean;
-	public var metaData:Object;
+		public var metaDataReady:Boolean;
+		public var metaData:Object;

-	public function JplayerStatus() {
-		reset();
-	}
-	public function reset():void {
-		src = "";
-		srcError = false;
+		public function JplayerStatus() {
+			reset();
+		}
+		public function reset():void {
+			src = "";
+			srcError = false;

-		srcSet = false;
-		isPlaying = false;
-		isSeeking = false;
-		flashIsSeeking = false;
+			srcSet = false;
+			isPlaying = false;
+			isSeeking = false;
+			flashIsSeeking = false;

-		playOnLoad = false;
-		playOnSeek = false;
-		playAfterFlashIsSeeking = false;
+			playOnLoad = false;
+			playOnSeek = false;
+			playAfterFlashIsSeeking = false;

-		isStartingDownload = false;
-		isLoading = false;
-		isLoaded = false;
+			isStartingDownload = false;
+			isLoading = false;
+			isLoaded = false;

-		pausePosition = 0;
+			pausePosition = 0;

-		seekPercent = 0;
-		currentTime = 0;
-		currentPercentRelative = 0;
-		currentPercentAbsolute = 0;
-		duration = 0;
+			seekPercent = 0;
+			currentTime = 0;
+			currentPercentRelative = 0;
+			currentPercentAbsolute = 0;
+			duration = 0;

-		metaDataReady = false;
-		metaData = {};
-	}
-	public function error():void {
-		var srcSaved:String = src;
-		reset();
-		src = srcSaved;
-		srcError = true;
-	}
-	public function loadRequired():Boolean {
-		return (srcSet && !isStartingDownload && !isLoading && !isLoaded);
-	}
-	public function startingDownload():void {
-		isStartingDownload = true;
-		isLoading = false;
-		isLoaded = false;
-	}
-	public function loading():void {
-		isStartingDownload = false;
-		isLoading = true;
-		isLoaded = false;
-	}
-	public function loaded():void {
-		isStartingDownload = false;
-		isLoading = false;
-		isLoaded = true;
+			metaDataReady = false;
+			metaData = {};
+		}
+		public function error():void {
+			var srcSaved:String = src;
+			reset();
+			src = srcSaved;
+			srcError = true;
+		}
+		public function loadRequired():Boolean {
+			return (srcSet && !isStartingDownload && !isLoading && !isLoaded);
+		}
+		public function startingDownload():void {
+			isStartingDownload = true;
+			isLoading = false;
+			isLoaded = false;
+		}
+		public function loading():void {
+			isStartingDownload = false;
+			isLoading = true;
+			isLoaded = false;
+		}
+		public function loaded():void {
+			isStartingDownload = false;
+			isLoading = false;
+			isLoaded = true;
+		}
 	}
 }
-}


doc fix

doc fix

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -21,8 +21,8 @@
  * positions to have them animated in place of the initial child.
  *
  *
A Movie will not animate unless it's added to a Juggler (or its advanceTime() function
- * is otherwise called. When the movie is added to a juggler, it advances its playhead with the
- * frame ticks if isPlaying is true. It will automatically removes itself from its juggler when
+ * is otherwise called). When the movie is added to a juggler, it advances its playhead with the
+ * frame ticks if isPlaying is true. It will automatically remove itself from its juggler when
  * removed from the stage.

  *
  * @see Library and LibraryLoader to create instances of Movie.


Added optional textureResource parameter to TextureLoader, in order to load a texture to an existing TextureResource

--- src/aerys/minko/type/loader/TextureLoader.as
+++ src/aerys/minko/type/loader/TextureLoader.as
@@ -1,8 +1,5 @@
 package aerys.minko.type.loader
 {
-	import aerys.minko.render.resource.texture.TextureResource;
-	import aerys.minko.type.Signal;
-
 	import flash.display.Bitmap;
 	import flash.display.BitmapData;
 	import flash.display.DisplayObject;
@@ -16,6 +13,9 @@
 	import flash.net.URLRequest;
 	import flash.utils.ByteArray;
 	import flash.utils.getQualifiedClassName;
+
+	import aerys.minko.render.resource.texture.TextureResource;
+	import aerys.minko.type.Signal;

 	public class TextureLoader implements ILoader
 	{
@@ -54,16 +54,16 @@
 			return _textureResource;
 		}

-		public function TextureLoader(enableMipmapping : Boolean = true)
+		public function TextureLoader(enableMipmapping : Boolean = true, textureResource : TextureResource = null)
 		{
 			_mipMapping	= enableMipmapping;

-			initialize();
-		}
-
-		private function initialize() : void
-		{
-			_textureResource 	= new TextureResource();
+			initialize(textureResource);
+		}
+
+		private function initialize(textureResource : TextureResource) : void
+		{
+			_textureResource 	= textureResource ? textureResource : new TextureResource();
 			_textureResource.setContentFromBitmapData(TextureResource.EMPTY_BITMAPDATA, _mipMapping);

 			_isComplete 		= false;


TestCase: Replaced setTimeout() with a Timer to reduce the failure call stack.

--- as3/src/asunit/framework/TestCase.as
+++ as3/src/asunit/framework/TestCase.as
@@ -3,9 +3,11 @@
 	import flash.display.DisplayObjectContainer;
 	import flash.errors.IllegalOperationError;
 	import flash.events.Event;
+	import flash.events.TimerEvent;
 	import flash.utils.describeType;
 	import flash.utils.getDefinitionByName;
 	import flash.utils.setTimeout;
+	import flash.utils.Timer;

 	import asunit.errors.AssertionFailedError;
 	import asunit.util.ArrayIterator;
@@ -74,6 +76,7 @@
 		protected var isComplete:Boolean;
 		protected var result:TestListener;
 		protected var testMethods:Array;
+		protected var timer:Timer;

 		private var asyncQueue:Array;
 		private var currentMethod:String;
@@ -105,6 +108,13 @@
 			setName(className.toString());
 			resolveLayoutManager();
 			asyncQueue = [];
+			timer = new Timer(1, 1);
+			timer.addEventListener(TimerEvent.TIMER, onTick);
+		}
+
+		// Not subscribing runBare() directly because that would require the Test interface to change.
+		protected function onTick(e:TimerEvent):void {
+			runBare();
 		}

 		private function resolveLayoutManager():void {
@@ -423,7 +433,9 @@
 				tearDown();
 				layoutManager.resetAll();
 			}
-			setTimeout(runBare, 5);
+			// Use Timer instead of setTimeout to reduce the failure call stack.
+			timer.reset()
+			timer.start();
 		}

 		/**


pen tool now ignores mouse events when one of alt/shift/ctrl is pressed. pen tool polygon mode now requires point click event.

--- WeaveUISpark/src/weave/ui/PenTool.as
+++ WeaveUISpark/src/weave/ui/PenTool.as
@@ -22,6 +22,7 @@
 	import flash.display.DisplayObject;
 	import flash.display.Graphics;
 	import flash.events.ContextMenuEvent;
+	import flash.events.KeyboardEvent;
 	import flash.events.MouseEvent;
 	import flash.geom.Point;
 	import flash.ui.ContextMenu;
@@ -36,6 +37,7 @@
 	import weave.api.WeaveAPI;
 	import weave.api.core.IDisposableObject;
 	import weave.api.core.ILinkableObject;
+	import weave.api.core.IStageUtils;
 	import weave.api.data.IQualifiedKey;
 	import weave.api.getCallbackCollection;
 	import weave.api.primitives.IBounds2D;
@@ -72,6 +74,7 @@
 			addEventListener(MouseEvent.MOUSE_OUT, handleRollOut);
 			// add local event listener for mouse down. local rather than global because we don't care if mouse was pressed elsewhere
 			addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
+			addEventListener(MouseEvent.CLICK, handleMouseDown);

 			addEventListener(FlexEvent.CREATION_COMPLETE, handleCreationComplete);

@@ -80,6 +83,7 @@
 			addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);

 			// add global event listener for mouse move and mouse up because user may move or release outside this display object
+			WeaveAPI.StageUtils.addEventCallback(KeyboardEvent.KEY_DOWN, this, handleKeyboard);
 			WeaveAPI.StageUtils.addEventCallback(MouseEvent.MOUSE_MOVE, this, handleMouseMove);
 			WeaveAPI.StageUtils.addEventCallback(MouseEvent.MOUSE_UP, this, handleMouseUp);

@@ -302,11 +306,22 @@
 		 */
 		private function handleMouseDown(event:MouseEvent):void
 		{
+			if (!_editMode)// || mouseOffscreen())
+				return;
+
+			if (drawingMode.value == POLYGON_DRAW_MODE)
+			{
+				if (!WeaveAPI.StageUtils.pointClicked)
+					return;
+			}
+			else
+			{
+				if (event.type == MouseEvent.CLICK)
+					return;
+			}
+
 			var line:Array;

-			if (!_editMode)// || mouseOffscreen())
-				return;
-
 			// project the point to data coordinates
 			handleScreenCoordinate(mouseX, mouseY, _tempPoint);

@@ -367,15 +382,23 @@
 			}
 		}

+		private function toggleMouseEnabled():void
+		{
+			var keyPressed:Boolean = WeaveAPI.StageUtils.altKey || WeaveAPI.StageUtils.ctrlKey || WeaveAPI.StageUtils.shiftKey;
+			if (mouseEnabled == keyPressed)
+				mouseEnabled = !keyPressed;
+		}
+
 		/**
 		 * Handle the mouse release event.
 		 */
 		private function handleMouseUp():void
 		{
-
 			if (!_editMode)// || mouseOffscreen())
 				return;

+			toggleMouseEnabled();
+
 			if (drawingMode.value == FREE_DRAW_MODE)
 			{
 				_drawing = false;
@@ -395,12 +418,23 @@
 			invalidateDisplayList();
 		}

+		private function handleKeyboard():void
+		{
+			if (editMode)
+				toggleMouseEnabled();
+		}
+
 		/**
 		 * Handle a mouse move event.
-		 */
+		 */
 		private function handleMouseMove():void
 		{
-			if (_drawing && editMode)// && !mouseOffscreen())
+			if (!editMode)
+				return;
+
+			toggleMouseEnabled();
+
+			if (_drawing)// && !mouseOffscreen())
 			{
 				// get the current line
 				var line:Array = _coordsArrays[_coordsArrays.length - 1];
@@ -413,10 +447,10 @@
 					line.push(_tempPoint.x, _tempPoint.y);
 					coords.value += _tempPoint.x + "," + _tempPoint.y + ",";
 				}
-			}
-
-			// redraw
-			invalidateDisplayList();
+
+				// redraw
+				invalidateDisplayList();
+			}
 		}

 		/**


Refactoring WIP.

Refactoring WIP.

--- driver/src/main/flex/org/postgresql/febe/FEBEConnection.as
+++ driver/src/main/flex/org/postgresql/febe/FEBEConnection.as
@@ -39,7 +39,6 @@

             _connected = false;
             _connecting = false;
-            _handlers = [];

             _broker.addEventListener(MessageEvent.RECEIVED, handleMessageReceived);
 		}
@@ -56,17 +55,18 @@
             _msgDispatcher = dispatcher;
             var authHandler:IFEBEMessageHandler = new AuthenticationHandler(dispatcher);
             authHandler.addEventListener(AuthenticationHandler.AUTHENTICATED, handleAuth);
-            _handlers.push(authHandler);
+            _handlers = [ authHandler ];
             _broker.send(new StartupMessage(_params));
         }

         private function handleAuth(e:Event):void {
         	_connecting = false;
         	_connected = true;
-        	//_queryHandler = new QueryMessageHandler(_msgDispatcher);
-        	_handlers = [ /* query, rfq (?), notice/error, notification */ ];
-        	// rfq probably does not need to be its own handler with its own state--we
-        	// can directly add an event handler to the broker.
+        	_queryHandler = new QueryMessageHandler(_msgDispatcher);
+        	_rfqHandler = new ReadyForQueryHandler(_msgDispatcher);
+        	var noticeHandler:NoticeHandler = new NoticeHandler(_msgDispatcher);
+        	var notifHandler:NotificationHandler = new NotificationHandler(_msgDispatcher);
+        	_handlers = [ _queryHandler, noticeHandler, notifHandler, _rfqHandler  ];
         }

@@ -87,6 +87,7 @@
         // query-data-available and statement-complete messages. We should also batch
         // the data-available messages--dispatching an event per-DataRow would be silly.
         internal function executeSimpleQuery(sql:String, handler:IQueryHandler):void {
+        	_queryHandler.handler = handler;
             _broker.send(new Query(sql));
         }

@@ -241,6 +242,7 @@
     }

     public override function getCallback(msg:IBEMessage):Function {
+    	// If there is no current statement, there is nothing to handle
     	return _stmt ? super.getCallback(msg) : null;
     }

@@ -276,6 +278,10 @@
 import org.postgresql.febe.ProtocolError;
 import flash.events.Event;
 import org.postgresql.febe.TransactionStatus;
+import org.postgresql.febe.message.NoticeResponse;
+import org.postgresql.febe.message.ErrorResponse;
+import org.postgresql.febe.event.NoticeEvent;
+import org.postgresql.febe.message.ResponseMessageBase;

 class NotificationHandler extends AbstractFEBEMessageHandler {

@@ -287,4 +293,17 @@
     private function handleNotification(msg:NotificationResponse):void {
         dispatchEvent(new NotificationEvent(msg.condition, msg.notifierPid));
     }
+}
+
+class NoticeHandler extends AbstractFEBEMessageHandler {
+
+    public function NoticeHandler(target:IEventDispatcher) {
+        super(target);
+        _handlerMethods[NoticeResponse] = handleNotice;
+        _handlerMethods[ErrorResponse] = handleNotice
+    }
+
+    private function handleNotice(msg:ResponseMessageBase):void {
+        dispatchEvent(new NoticeEvent(msg is ErrorResponse ? NoticeEvent.ERROR : NoticeEvent.NOTICE, msg.fields));
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5801
Author:   clucier@adobe.com
Date:     2009-03-31T15:57:42.152225Z

Log Message:
-----------
DataGrid now correctly manages default button when editor is active.
Bugs: SDK-20127
QE Notes: None
Doc Notes: None
Reviewer: Alex

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as

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

--- frameworks/projects/mx/src/mx/controls/DataGrid.as
+++ frameworks/projects/mx/src/mx/controls/DataGrid.as
@@ -1362,9 +1362,6 @@
     public function set editable(value:Boolean):void
     {
         _editable = value;
-
-        if (focusManager)
-            focusManager.defaultButtonEnabled = !value;
     }

     //----------------------------------
@@ -4169,6 +4166,8 @@

         // listen for keyStrokes on the itemEditorInstance (which lets the grid supervise for ESC/ENTER)
         DisplayObject(itemEditorInstance).addEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
+        if (focusManager)
+            focusManager.defaultButtonEnabled = false;
         // we disappear on any mouse down outside the editor
         systemManager.getSandboxRoot().
             addEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true, 0, true);
@@ -4276,6 +4275,8 @@
         if (itemEditorInstance)
         {
             DisplayObject(itemEditorInstance).removeEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
+            if (focusManager)
+                focusManager.defaultButtonEnabled = true;
             systemManager.getSandboxRoot().
                 removeEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true);
             systemManager.getSandboxRoot().
@@ -4714,9 +4715,6 @@
         {
             addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
             addEventListener(MouseEvent.MOUSE_DOWN, mouseFocusChangeHandler);
-
-            if (focusManager)
-                focusManager.defaultButtonEnabled = false;
         }

         if (event.target != this)
@@ -4813,9 +4811,6 @@
      */
     override protected function focusOutHandler(event:FocusEvent):void
     {
-        if (focusManager)
-            focusManager.defaultButtonEnabled = true;
-
         // trace(">>DGFocusOut " + itemEditorInstance + " " + event.relatedObject, event.target);
         if (event.target == this)
             super.focusOutHandler(event);
@@ -4925,6 +4920,10 @@
 			return;

         endEdit(DataGridEventReason.OTHER);
+        // set focus back to the grid so grid logic will deal if focus doesn't
+        // end up somewhere else
+        losingFocus = true;
+        setFocus();
     }

     /**
@@ -4955,7 +4954,11 @@
             // the enter key is down, but the keyCode is 229 instead of the enter key code.
             // Thanks to Yukari for this little trick...
             if (endEdit(DataGridEventReason.NEW_ROW) && !dontEdit)
+            {
                 findNextEnterItemRenderer(event);
+                if (focusManager)
+                    focusManager.defaultButtonEnabled = false;
+            }
         }
     }