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 bf6e14e460 Emulation - make menubar change event a MenuEvent
bf6e14e460 is described below

commit bf6e14e460d3b2069c01e85a8ca982bbc714d605
Author: Yishay Weiss <[email protected]>
AuthorDate: Tue Apr 26 14:52:03 2022 +0300

    Emulation - make menubar change event a MenuEvent
---
 .../controllers/MenuSelectionMouseController.as    | 10 +++++++-
 .../src/main/royale/mx/controls/MenuBar.as         |  2 +-
 .../CascadingMenuSelectionMouseController.as       | 30 +++++++++++++++-------
 3 files changed, 31 insertions(+), 11 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
index e85b4bd6a8..2d4cdac5cb 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
@@ -110,9 +110,17 @@ package org.apache.royale.html.beads.controllers
                        var node:Object = event.data;
                        
                        list.model.selectedItem = node;
-                       sendEvent(menuDispatcher,"change");
+                       sendChangeEvent(menuDispatcher, event)
                        hideOpenMenus();
                }
+
+               /**
+                * private
+                */
+               protected function 
sendChangeEvent(menuDispatcher:IEventDispatcher, 
itemClickedEvent:ItemClickedEvent):void
+               {
+                       sendEvent(menuDispatcher,"change");
+               }
                
                /**
                 * Finds and returns the object from which events should be 
dispatched. This
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
index 72382a25f2..ac32d24ba6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
@@ -87,7 +87,7 @@ use namespace mx_internal;
  *  @playerversion AIR 1.1
  *  @productversion Royale 0.9.3
  */
-//[Event(name="change", type="mx.events.MenuEvent")]
+[Event(name="change", type="mx.events.MenuEvent")]
 
 /**
  *  Dispatched when the user selects an item in a pop-up submenu.
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 8f627dbad7..2b16e42ce4 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
@@ -79,15 +79,9 @@ package mx.controls.beads.controllers
                        }
                }
 
-               override protected function 
selectedHandler(event:ItemClickedEvent):void
+               private function populateMenuEvent(menuEvent:MenuEvent, 
itemClickedEvent: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;
+                       var data:Object = itemClickedEvent.target.data;
                        menuEvent.item = data;
                        var menu:IMenu = _strand as IMenu;
                        var label:String;
@@ -100,7 +94,18 @@ package mx.controls.beads.controllers
                                label = data[menu.labelField];
                        }
                        menuEvent.label = label;
-                       menuEvent.index = event.index;
+                       menuEvent.index = itemClickedEvent.index;
+               }
+
+               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);
+                       populateMenuEvent(menuEvent, event);
                        findMenuDispatcher().dispatchEvent(menuEvent);
                }
 
@@ -145,6 +150,13 @@ package mx.controls.beads.controllers
                        }
                }
 
+               override protected function 
sendChangeEvent(menuDispatcer:IEventDispatcher, 
itemClickedEvent:ItemClickedEvent):void
+               {
+                       var menuEvent:MenuEvent = new MenuEvent(Event.CHANGE);
+                       populateMenuEvent(menuEvent, itemClickedEvent);
+                       menuDispatcer.dispatchEvent(menuEvent);
+               }
+
                override protected function getParentMenuBar():IEventDispatcher
                {
                        var parentMenuBar:IEventDispatcher = (_strand as 
IMenu).parentMenuBar;

Reply via email to