flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Justin Mclean (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (FLEX-33593) mx.controls.MenuBar#mouseOutHandler TypeError
Date Thu, 20 Jun 2013 13:10:20 GMT

     [ https://issues.apache.org/jira/browse/FLEX-33593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Justin Mclean resolved FLEX-33593.
----------------------------------

       Resolution: Fixed
    Fix Version/s: Apache Flex 4.10.0

Checked into 4.10 develop branch. Mustella tests pass.
                
> mx.controls.MenuBar#mouseOutHandler TypeError
> ---------------------------------------------
>
>                 Key: FLEX-33593
>                 URL: https://issues.apache.org/jira/browse/FLEX-33593
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: mx: Menu Bar
>    Affects Versions: Apache Flex 4.9.0
>            Reporter: Philip Mair
>             Fix For: Apache Flex 4.10.0
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> When changing MenuBar dataProvider within click on Menu sometimes causes a TypeError
in mouseOutHandler.
> I solved this with following workaround:
> 		public override function addChild(child:DisplayObject):DisplayObject
> 		{
> 			if( child is IMenuBarItemRenderer )
> 			{
> 				var item: IMenuBarItemRenderer = IMenuBarItemRenderer( child );
> 				
> 				
> 				item.addEventListener( MouseEvent.MOUSE_OUT, patchedMouseOutHandler, false, int.MAX_VALUE
);
> 			}
> 			
> 			return super.addChild( child );
> 		}
> 		
> 		private function patchedMouseOutHandler( event: MouseEvent ) : void
> 		{
> 			//stop the event to avoid npe
> 			event.stopImmediatePropagation();
> 			event.stopPropagation();
> 			
> 			var item:IMenuBarItemRenderer = IMenuBarItemRenderer(event.target);
> 			var index:int = item.menuBarItemIndex;
> 			var m:Menu = getMenuAt(index);
> 			
> 			if (item.enabled && selectedIndex != index)
> 			{
> 				if( menuBarItems.indexOf( item ) >= 0 )
> 					menuBarItems[index].menuBarItemState = "itemUpSkin";
> 			}
> 			// Fire the appropriate rollout event
> 			if (item.data && 
> 				(m.dataDescriptor.getType(item.data) != "separator"))
> 			{
> 				var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_ROLL_OUT);
> 				menuEvent.index = index;
> 				menuEvent.menuBar = this;
> 				menuEvent.label = itemToLabel(item.data);
> 				menuEvent.item = item.data;
> 				menuEvent.itemRenderer = item;
> 				dispatchEvent(menuEvent);
> 			}
> 		}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message