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