You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2022/04/14 09:01:53 UTC

[royale-asjs] branch develop updated: popUpHost was not always identical for event listeners and dispatchers, so better use topMostEventHandler instead

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 fc95069991 popUpHost was not always identical for event listeners and dispatchers, so better use topMostEventHandler instead
fc95069991 is described below

commit fc950699915d06f38153fa265cce2d7768ef3cc5
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Thu Apr 14 12:00:23 2022 +0300

    popUpHost was not always identical for event listeners and dispatchers,
    so better use topMostEventHandler instead
---
 .../projects/Basic/src/main/royale/org/apache/royale/html/Menu.as     | 3 +--
 .../apache/royale/html/beads/controllers/MenuBarMouseController.as    | 3 +--
 .../royale/html/beads/controllers/MenuSelectionMouseController.as     | 4 ++--
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Menu.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Menu.as
index 61fea69665..d396a9f132 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Menu.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Menu.as
@@ -167,8 +167,7 @@ package org.apache.royale.html
 		public function hide():void
 		{		
 			// dispatch the "hideMenus" event to trigger any exposed menu to be hidden.
-			var host:IParent = UIUtils.findPopUpHost(this).popUpParent as IParent;
-			(host as IEventDispatcher).dispatchEvent(new Event("hideMenus"));
+			topMostEventDispatcher.dispatchEvent(new Event("hideMenus"));
 		}
 	}
 }
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
index 78672b8619..d1f305f9d2 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
@@ -112,8 +112,7 @@ package org.apache.royale.html.beads.controllers
 		override protected function selectedHandler(event:ItemClickedEvent):void
 		{
 			// close any previously open menus
-			var host:UIBase = UIUtils.findPopUpHost(_strand as IUIBase) as UIBase;
-			sendEvent(host,"hideMenus");
+			sendEvent((_strand as UIBase).topMostEventDispatcher,"hideMenus");
 			
 			var component:IUIBase = event.target as IUIBase;
 			
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 5b1672c69c..e85b4bd6a8 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
@@ -189,7 +189,7 @@ package org.apache.royale.html.beads.controllers
 		{
 			MenuModel.removeMenu(menu);
 			
-			var host:IEventDispatcher = UIUtils.findPopUpHost(menu as IUIBase) as IEventDispatcher;
+			var host:IEventDispatcher = (menu as IUIBase).topMostEventDispatcher;
 			host.removeEventListener("hideMenus", handleHideMenus);
 			
 			COMPILE::SWF {
@@ -203,7 +203,7 @@ package org.apache.royale.html.beads.controllers
 		protected function addClickOutHandler(menu:Object):void
 		{
 			// detect an up event on the background as a way to dismiss this menu
-			var host:IEventDispatcher = UIUtils.findPopUpHost(_strand as IUIBase) as IEventDispatcher;
+			var host:IEventDispatcher = (_strand as IUIBase).topMostEventDispatcher;
 			host.addEventListener("hideMenus", handleHideMenus);
 			
 			COMPILE::SWF {