Fixes eventGetFromElement() on standard browsers (i.e. not IE).
Patch by: bobv
Review by: jgw
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1011 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/impl/DOMImpl.java b/user/src/com/google/gwt/user/client/impl/DOMImpl.java
index c6b4f88..6c05f07 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImpl.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImpl.java
@@ -75,9 +75,7 @@
return evt.ctrlKey;
}-*/;
- public native Element eventGetFromElement(Event evt) /*-{
- return evt.fromElement || null;
- }-*/;
+ public abstract Element eventGetFromElement(Event evt);
public native int eventGetKeyCode(Event evt) /*-{
// 'which' gives the right key value, except when it doesn't -- in which
diff --git a/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java b/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java
index f3094da..64b4163 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java
@@ -36,6 +36,10 @@
return $doc.createElement("<INPUT type='RADIO' name='" + group + "'>");
}-*/;
+ public native Element eventGetFromElement(Event evt) /*-{
+ return evt.fromElement ? evt.fromElement : null;
+ }-*/;
+
/**
* Supports creating a select control with the multiple attribute to work
* around a bug in IE6 where changing the multiple attribute in a
diff --git a/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java b/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
index f66e9e1..e402241 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
@@ -36,6 +36,11 @@
return elem;
}-*/;
+ public native Element eventGetFromElement(Event evt) /*-{
+ // Standard browsers use relatedTarget rather than fromElement.
+ return evt.relatedTarget ? evt.relatedTarget : null;
+ }-*/;
+
public native Element eventGetTarget(Event evt) /*-{
return evt.target || null;
}-*/;