Fixes missing event system init in DOM.addEventPreview() case.
Issue: 2377
Patch by: jgw
Review by: knorton
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2700 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/DOM.java b/user/src/com/google/gwt/user/client/DOM.java
index b2c7d8b..d986de2 100644
--- a/user/src/com/google/gwt/user/client/DOM.java
+++ b/user/src/com/google/gwt/user/client/DOM.java
@@ -51,6 +51,8 @@
* @param preview the event preview to be added to the stack.
*/
public static void addEventPreview(EventPreview preview) {
+ impl.maybeInitializeEventSystem();
+
// Add the event preview to the stack. It will automatically
// begin receiving events.
if (sEventPreviewStack == null) {
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 ce4d7a6..9f3ae92 100644
--- a/user/src/com/google/gwt/user/client/impl/DOMImpl.java
+++ b/user/src/com/google/gwt/user/client/impl/DOMImpl.java
@@ -160,6 +160,16 @@
public abstract void insertChild(Element parent, Element child, int index);
+ /**
+ * Initialize the event system if it has not already been initialized.
+ */
+ public void maybeInitializeEventSystem() {
+ if (!eventSystemIsInitialized) {
+ initEventSystem();
+ eventSystemIsInitialized = true;
+ }
+ }
+
public abstract void releaseCapture(Element elem);
public abstract void setCapture(Element elem);
@@ -174,14 +184,4 @@
* Initializes the event dispatch system.
*/
protected abstract void initEventSystem();
-
- /**
- * Initialize the event system if it has not already been initialized.
- */
- protected void maybeInitializeEventSystem() {
- if (!eventSystemIsInitialized) {
- initEventSystem();
- eventSystemIsInitialized = true;
- }
- }
}