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 2021/07/27 17:02:00 UTC

[royale-asjs] branch develop updated: Closes #1133

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 598aeff  Closes #1133
598aeff is described below

commit 598aeffcd9c9a67d3bfe78b2cb244a7a21204b69
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Tue Jul 27 20:00:49 2021 +0300

    Closes #1133
---
 .../beads/HideComboPopupOnMouseDownBead.as         | 36 ++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
index 3b47439..af95eaf 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
@@ -18,6 +18,13 @@
 ////////////////////////////////////////////////////////////////////////////////
 package mx.controls.beads
 {
+	COMPILE::JS
+	{
+		import org.apache.royale.core.WrappedHTMLElement;
+	}
+	import org.apache.royale.core.IChild;
+	import org.apache.royale.core.IStrandWithModelView;
+	import org.apache.royale.html.beads.IViewWithPopUp;
 	import org.apache.royale.utils.callLater;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
@@ -51,7 +58,7 @@ package mx.controls.beads
 				((_strand as UIBase).topMostEventDispatcher as IEventDispatcher).addEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
 				COMPILE::JS 
 				{
-					window.addEventListener("wheel", handleTopMostEventDispatcherMouseDown);
+					window.addEventListener("wheel", handleWheelEvent);
 				}
 			});
 		}
@@ -68,8 +75,33 @@ package mx.controls.beads
 			((_strand as UIBase).topMostEventDispatcher as IEventDispatcher).removeEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
 			COMPILE::JS 
 			{
-				window.removeEventListener("wheel", handleTopMostEventDispatcherMouseDown);
+				window.removeEventListener("wheel", handleWheelEvent);
+			}
+		}
+
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		private function handleWheelEvent(event:Event):void
+		{
+			var target:WrappedHTMLElement = event.target as WrappedHTMLElement;
+			if (target)
+			{
+				var child:IChild = target.royale_wrapper as IChild;
+				var popup:Object = ((this._strand as IStrandWithModelView).view as IViewWithPopUp).popUp;
+				while (child)
+				{
+					if (child == popup)
+					{
+						return;
+					}
+					child = child.parent as IChild;
+				}
 			}
+			handleTopMostEventDispatcherMouseDown(null);
 		}
+				
+
 	}
 }