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;
-    }
-  }
 }