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();
+ }
}
}