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

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


The following commit(s) were added to refs/heads/develop by this push:
     new fcb7aa1f0e Emulation - make sure unfolding a cascading menu does not 
imply selection
fcb7aa1f0e is described below

commit fcb7aa1f0eb4e1c0882036013e7fe2daf47f39f7
Author: Yishay Weiss <[email protected]>
AuthorDate: Mon Apr 4 19:06:13 2022 +0300

    Emulation - make sure unfolding a cascading menu does not imply selection
---
 .../controllers/CascadingMenuSelectionMouseController.as   |  5 +++++
 .../mx/controls/menuClasses/CascadingMenuItemRenderer.as   | 14 +++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

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 424ae6b97b..0899473464 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
@@ -30,6 +30,7 @@ package mx.controls.beads.controllers
        import mx.events.MenuEvent;
        import org.apache.royale.core.UIBase;
        import org.apache.royale.events.IEventDispatcher;
+       import mx.supportClasses.IFoldable;
 
 /**
  *  The CascadingMenuSelectionMouseController is the default controller for 
emulation cascading menu
@@ -74,6 +75,10 @@ package mx.controls.beads.controllers
                override protected function 
selectedHandler(event:ItemClickedEvent):void
                {
                        super.selectedHandler(event);
+                       if (event.target is IFoldable && (event.target as 
IFoldable).canUnfold)
+                       {
+                               return; // this is not selection, but rather a 
folding action
+                       }
                        var menuEvent:MenuEvent = new 
MenuEvent(MenuEvent.ITEM_CLICK);
                        var data:Object = event.target.data;
                        menuEvent.item = data;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
index 1e0f3253ba..b405f2a2fb 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/menuClasses/CascadingMenuItemRenderer.as
@@ -23,6 +23,7 @@ package mx.controls.menuClasses
        import org.apache.royale.core.ValuesManager;
        import org.apache.royale.core.layout.EdgeData;
        import org.apache.royale.html.supportClasses.CascadingMenuItemRenderer;
+       import mx.supportClasses.IFoldable;
 
        /**
         *  The ListItemRenderer is the default renderer for mx.controls.List
@@ -33,7 +34,7 @@ package mx.controls.menuClasses
         *  @productversion Flex 3
         */
 
-       public class CascadingMenuItemRenderer extends 
org.apache.royale.html.supportClasses.CascadingMenuItemRenderer
+       public class CascadingMenuItemRenderer extends 
org.apache.royale.html.supportClasses.CascadingMenuItemRenderer implements 
IFoldable
        {
                public function CascadingMenuItemRenderer()
                {
@@ -88,6 +89,17 @@ package mx.controls.menuClasses
                        var type:String = (data as 
XML).attribute("type").toString();
                        return type ? type : null;
                }
+
+               private var _canFold:Boolean;
+               public function get canFold():Boolean
+               {
+                       return _canFold;
+               }
+               
+               public function get canUnfold():Boolean
+               {
+                       return getHasMenu();
+               }
        }
 
 }

Reply via email to