JRE-876 add mouse listeners to WWindowPeer.preprocessPostEvent

(cherry picked from commit 8d6043409736a10a62e3967f4a25f379c9a36f58)
diff --git a/src/windows/classes/sun/awt/windows/WWindowPeer.java b/src/windows/classes/sun/awt/windows/WWindowPeer.java
index 0bc1875..8359db8 100644
--- a/src/windows/classes/sun/awt/windows/WWindowPeer.java
+++ b/src/windows/classes/sun/awt/windows/WWindowPeer.java
@@ -88,6 +88,8 @@
      * WindowStateEvent is posted to the EventQueue.
      */
     private WindowListener windowListener;
+    private MouseMotionListener mouseMotionListener;
+    private MouseListener mouseListener;
 
     private Insets sysInsets; // set from native updateInsets
 
@@ -366,9 +368,57 @@
                         break;
                 }
             }
+        } else if (event instanceof MouseEvent) {
+            MouseListener _mouseListener = mouseListener;
+            if (_mouseListener != null) {
+                switch (event.getID()) {
+                    case MouseEvent.MOUSE_CLICKED:
+                        _mouseListener.mouseClicked((MouseEvent) event);
+                        break;
+                    case MouseEvent.MOUSE_PRESSED:
+                        _mouseListener.mousePressed((MouseEvent) event);
+                        break;
+                    case MouseEvent.MOUSE_RELEASED:
+                        _mouseListener.mouseReleased((MouseEvent) event);
+                        break;
+                    case MouseEvent.MOUSE_ENTERED:
+                        _mouseListener.mouseEntered((MouseEvent) event);
+                        break;
+                    case MouseEvent.MOUSE_EXITED:
+                        _mouseListener.mouseExited((MouseEvent) event);
+                        break;
+                }
+            }
+            MouseMotionListener _mouseMotionListener = mouseMotionListener;
+            if (_mouseMotionListener != null) {
+                switch (event.getID()) {
+                    case MouseEvent.MOUSE_DRAGGED:
+                        _mouseMotionListener.mouseDragged((MouseEvent)event);
+                        break;
+                    case MouseEvent.MOUSE_MOVED:
+                        _mouseMotionListener.mouseMoved((MouseEvent)event);
+                        break;
+                }
+            }
         }
     }
 
+    synchronized void addMouseListener(MouseListener l) {
+        mouseListener = AWTEventMulticaster.add(mouseListener, l);
+    }
+
+    synchronized void removeMouseListener(MouseListener l) {
+        mouseListener = AWTEventMulticaster.remove(mouseListener, l);
+    }
+
+    synchronized void addMouseMotionListener(MouseMotionListener l) {
+        mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, l);
+    }
+
+    synchronized void removeMouseMotionListener(MouseMotionListener l) {
+        mouseMotionListener = AWTEventMulticaster.remove(mouseMotionListener, l);
+    }
+
     synchronized void addWindowListener(WindowListener l) {
         windowListener = AWTEventMulticaster.add(windowListener, l);
     }