summaryrefslogtreecommitdiff
path: root/gnu/java
diff options
context:
space:
mode:
authorMario Torre <neugens@limasoftware.net>2008-05-07 14:40:39 +0000
committerMario Torre <neugens@limasoftware.net>2008-05-07 14:40:39 +0000
commitb45fa805fdac0a49b3e3ddf9e4c545c828c7c744 (patch)
tree2c90bc3de04534628aefe14126a1203b126c5949 /gnu/java
parent13809b05ad9c542eae3af83d671996fb0415bfae (diff)
downloadclasspath-b45fa805fdac0a49b3e3ddf9e4c545c828c7c744.tar.gz
2008-05-07 Mario Torre <neugens@limasoftware.net>
* gnu/java/awt/peer/x/XEventPump.java (handleEvent): Fixed mouse dragging and movement in XEventPump. Patch from Roman Kennke.
Diffstat (limited to 'gnu/java')
-rw-r--r--gnu/java/awt/peer/x/XEventPump.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/gnu/java/awt/peer/x/XEventPump.java b/gnu/java/awt/peer/x/XEventPump.java
index df144c827..214aefba0 100644
--- a/gnu/java/awt/peer/x/XEventPump.java
+++ b/gnu/java/awt/peer/x/XEventPump.java
@@ -203,18 +203,26 @@ public class XEventPump
key= new Integer(mn.event_window_id);
awtWindow = (Window) windows.get(key);
+ button = mn.detail();
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
+
MouseEvent mm;
if (drag == -1)
{
mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_MOVED,
- System.currentTimeMillis(), 0,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(mn.state()) | buttonToModifier(button),
mn.event_x(), mn.event_y(),
1, false);
+
}
else
{
mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_DRAGGED,
- System.currentTimeMillis(), 0,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(mn.state()) | buttonToModifier(drag),
mn.event_x(), mn.event_y(),
1, false);
}