Hi, the attached patch makes mouse events work again for the X peers (and prevent a NPE later).
Regards Robert 2007-05-22 Robert Schuster <[EMAIL PROTECTED]> * gnu/java/awt/peer/x/XEventQueue.java: (handleEvent): Use Input.event_window_id instead of Input.child_window_id for mouse & key presses/releases.
Index: gnu/java/awt/peer/x/XEventPump.java =================================================================== RCS file: /sources/classpath/classpath/gnu/java/awt/peer/x/XEventPump.java,v retrieving revision 1.3 diff -u -r1.3 XEventPump.java --- gnu/java/awt/peer/x/XEventPump.java 30 Apr 2007 20:30:56 -0000 1.3 +++ gnu/java/awt/peer/x/XEventPump.java 22 May 2007 17:41:57 -0000 @@ -151,20 +151,19 @@ Integer key = null; Window awtWindow = null; - if (xEvent instanceof Input) - { - key= new Integer(((Input) xEvent).child_window_id); - awtWindow = (Window) windows.get(key); - } + if (XToolkit.DEBUG) System.err.println("fetched event: " + xEvent); switch (xEvent.code()) { case ButtonPress.CODE: ButtonPress bp = (ButtonPress) xEvent; + key= new Integer(bp.event_window_id); + awtWindow = (Window) windows.get(key); // Create and post the mouse event. int button = bp.detail(); drag = button; + MouseEvent mp = new MouseEvent(awtWindow, MouseEvent.MOUSE_PRESSED, System.currentTimeMillis(), 0, bp.event_x(), bp.event_y(), @@ -173,6 +172,8 @@ break; case ButtonRelease.CODE: ButtonRelease br = (ButtonRelease) xEvent; + key= new Integer(br.event_window_id); + awtWindow = (Window) windows.get(key); drag = -1; MouseEvent mr = new MouseEvent(awtWindow, MouseEvent.MOUSE_RELEASED, System.currentTimeMillis(), 0, @@ -182,6 +183,9 @@ break; case MotionNotify.CODE: MotionNotify mn = (MotionNotify) xEvent; + key= new Integer(mn.event_window_id); + awtWindow = (Window) windows.get(key); + MouseEvent mm; if (drag == -1) {
signature.asc
Description: OpenPGP digital signature