You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2019/12/22 09:55:57 UTC
[royale-asjs] 01/02: Temporary fix for event override conflict
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit caa837ee69029c1ff8984b457bc7849c0cf3f5f7
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Dec 22 11:55:20 2019 +0200
Temporary fix for event override conflict
---
.../org/apache/royale/core/ElementWrapper.as | 14 +++++++++++--
.../org/apache/royale/core/HTMLElementWrapper.as | 24 ++++++++++++++--------
2 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as
index 60a352c..58b7a64 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as
@@ -22,6 +22,7 @@ package org.apache.royale.core
{
import org.apache.royale.events.utils.EventUtils;
import org.apache.royale.events.BrowserEvent;
+ import org.apache.royale.events.IBrowserEvent
import goog.events.BrowserEvent;
import org.apache.royale.events.ElementEvents;
import goog.events;
@@ -180,11 +181,20 @@ package org.apache.royale.core
* @param listener The listener object to call {goog.events.Listener}.
* @param eventObject The event object to pass to the listener.
* @return Result of listener.
+ * @royaleignorecoercion org.apache.royale.events.IBrowserEvent
*/
static public function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
{
- var e:org.apache.royale.events.BrowserEvent = new org.apache.royale.events.BrowserEvent();
- e.wrapEvent(eventObject);
+ /**
+ * For now we're adding in some just-in-case code to prevent conflicts with ElementWrapper. This needs to be fixed.
+ */
+ var e:IBrowserEvent;
+ if(eventObject is IBrowserEvent){
+ e = eventObject as IBrowserEvent
+ } else {
+ e = new org.apache.royale.events.BrowserEvent();
+ e.wrapEvent(eventObject);
+ }
return ElementWrapper.googFireListener(listener, e);
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
index 419288b..d44fb29 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
@@ -155,18 +155,26 @@ package org.apache.royale.core
* @param listener The listener object to call {goog.events.Listener}.
* @param eventObject The event object to pass to the listener.
* @return Result of listener.
+ * @royaleignorecoercion org.apache.royale.events.IBrowserEvent
*/
static public function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
{
+ /**
+ * For now we're adding in some just-in-case code to prevent conflicts with ElementWrapper. This needs to be fixed.
+ */
var e:IBrowserEvent;
- var nativeEvent:Object = eventObject.getBrowserEvent();
- var converter:Object = converterMap[nativeEvent.constructor.name];
- if (converter)
- e = converter["convert"](nativeEvent,eventObject);
- else
- {
- e = new org.apache.royale.events.BrowserEvent();
- e.wrapEvent(eventObject);
+ if(eventObject is IBrowserEvent){
+ e = eventObject as IBrowserEvent
+ } else {
+ var nativeEvent:Object = eventObject.getBrowserEvent();
+ var converter:Object = converterMap[nativeEvent.constructor.name];
+ if (converter)
+ e = converter["convert"](nativeEvent,eventObject);
+ else
+ {
+ e = new org.apache.royale.events.BrowserEvent();
+ e.wrapEvent(eventObject);
+ }
}
return HTMLElementWrapper.googFireListener(listener, e);
}