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 <[email protected]>
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;
+               }
        }
 
 }

Reply via email to