You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pi...@apache.org on 2019/09/10 04:50:00 UTC

[royale-asjs] 03/04: Fixes #445

This is an automated email from the ASF dual-hosted git repository.

piotrz pushed a commit to branch release/0.9.6
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 1f3b96dce2c277315b848ce7d48229ed2b949005
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Sun Sep 8 16:27:32 2019 +0300

    Fixes #445
    
    (cherry picked from commit bcd15d6606d52ba5aaef1dae5050ba1025654513)
---
 .../CascadingMenuSelectionMouseController.as       | 31 ++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
index aaca10f..fd044c3 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
@@ -23,6 +23,7 @@ package mx.controls.beads.controllers
 	
 	import org.apache.royale.html.beads.controllers.CascadingMenuSelectionMouseController;
 	import org.apache.royale.html.beads.models.CascadingMenuModel;
+	import org.apache.royale.html.CascadingMenu;
 
 /**
  *  The CascadingMenuSelectionMouseController is the default controller for emulation cascading menu
@@ -53,6 +54,36 @@ package mx.controls.beads.controllers
 			}
 			return (node as XML).children().length() > 0;
 		}
+
+
+		/**
+		 * @private
+		 * 
+		 *  Search for an open menu strand according to the given data provider.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.6
+		 */
+		override protected function getMenuWithDataProvider(menuList:Array, dp:Object):CascadingMenu
+		{
+			if (!dp is XMLListCollection)
+			{
+				return super.getMenuWithDataProvider(menuList, dp);
+			}
+			var xmlListCollection:XMLListCollection = dp as XMLListCollection;
+			// go over open menus and return the one with the given data provider
+			for (var i:int = 0; i < menuList.length; i++)
+			{
+				var cascadingMenu:CascadingMenu = menuList[i] as CascadingMenu;
+				if (cascadingMenu && (cascadingMenu.dataProvider as XMLListCollection).toXMLString() == xmlListCollection.toXMLString())
+				{
+					return cascadingMenu;
+				}
+			}
+			return null;
+		}
 	}
 
 }