You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2013/06/19 16:53:18 UTC

git commit: [flex-sdk] [refs/heads/develop] - FLEX-33592 Fix issue when chaining data provider on MenuBar

Updated Branches:
  refs/heads/develop a7cf04dd4 -> fb27961bf


FLEX-33592 Fix issue when chaining data provider on MenuBar


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/fb27961b
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/fb27961b
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/fb27961b

Branch: refs/heads/develop
Commit: fb27961bff716b547c7876737e38e2a5a6084397
Parents: a7cf04d
Author: Justin Mclean <jm...@apache.org>
Authored: Thu Jun 20 00:52:52 2013 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Thu Jun 20 00:52:52 2013 +1000

----------------------------------------------------------------------
 .../projects/mx/src/mx/controls/MenuBar.as      | 29 ++++++++++++++------
 1 file changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb27961b/frameworks/projects/mx/src/mx/controls/MenuBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/mx/src/mx/controls/MenuBar.as b/frameworks/projects/mx/src/mx/controls/MenuBar.as
index 8d0fdb2..0c79f85 100644
--- a/frameworks/projects/mx/src/mx/controls/MenuBar.as
+++ b/frameworks/projects/mx/src/mx/controls/MenuBar.as
@@ -1204,6 +1204,9 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
             //reset flags 
             dataProviderChanged = false;
             showRootChanged = false;
+			
+			// forget last menu
+			openMenuIndex = -1;
         
             // are we swallowing the root?
             if (_rootModel && !_showRoot && _hasRoot)
@@ -1746,7 +1749,12 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
         if (dataProviderChanged)
             commitProperties();
 
-        var item:IMenuBarItemRenderer = menuBarItems[index];
+        var item:IMenuBarItemRenderer;
+		
+		if (index < 0 || index >= menuBarItems.length)
+			return null;
+		
+		item = menuBarItems[index];
       
         var mdp:Object = item.data;
         var menu:Menu = menus[index];
@@ -1964,7 +1972,7 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
                     }
                     isDown = true;
                     
-                    if (m.dataDescriptor.getType(item.data) != "separator")
+                    if (m && m.dataDescriptor.getType(item.data) != "separator")
                     {
                         requiresEvent = true;
                         //fire the change event 
@@ -1981,8 +1989,10 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
                 else
                 {
                     var mm:Menu = getMenuAt(index);
-                    mm.deleteDependentSubMenus();
-                    mm.setFocus();
+					if (mm) {
+	                    mm.deleteDependentSubMenus();
+	                    mm.setFocus();
+					}
                 }
             }
             else
@@ -2052,7 +2062,7 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
                 isDown = false;
             }
             
-            if (m.dataDescriptor.getType(item.data) != "separator")
+            if (m && m.dataDescriptor.getType(item.data) != "separator")
             {
                 //fire the change event 
                 var menuEvent:MenuEvent = new MenuEvent(MenuEvent.CHANGE);
@@ -2076,7 +2086,10 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
 
         if (item.enabled && !isDown)
         {
-            getMenuAt(index).hideAllMenus();
+			var m:Menu = getMenuAt(index);
+			
+            if (m)
+				m.hideAllMenus();
             item.menuBarItemState = "itemOverSkin";
         }
     }
@@ -2090,12 +2103,12 @@ public class MenuBar extends UIComponent implements IFocusManagerComponent
         var index:int = item.menuBarItemIndex;
         var m:Menu = getMenuAt(index);
 
-        if (item.enabled && openMenuIndex != index)
+        if (item.enabled && m && openMenuIndex != index)
         {
             menuBarItems[index].menuBarItemState = "itemUpSkin";
         }
         // Fire the appropriate rollout event
-        if (item.data && 
+        if (item.data && m &&
             (m.dataDescriptor.getType(item.data) != "separator"))
         {
             var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_ROLL_OUT);