diff --git a/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java b/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java index bdcd4950..e73ad3ce 100644 --- a/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java +++ b/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java @@ -20,6 +20,7 @@ import java.awt.event.MouseEvent; import java.util.HashMap; import javax.swing.JComponent; +import javax.swing.SwingUtilities; import javax.swing.Timer; import javax.swing.event.AncestorEvent; @@ -431,13 +432,17 @@ public class DnDManager return; } + // determine drop location + Point pos = SwingUtilities.convertPoint(event.getComponent(), + event.getPoint(), _lastComp); + // reset cursors clearComponentCursor(); _topComp.setCursor(_topCursor); // get the last target seen... if (_lastTarget != null) { - _lastTarget.dropCompleted(_source, _data[0]); + _lastTarget.dropCompleted(_source, _data[0], pos); _source.dragCompleted(_lastTarget); } reset(); diff --git a/projects/samskivert/src/java/com/samskivert/swing/dnd/DropTarget.java b/projects/samskivert/src/java/com/samskivert/swing/dnd/DropTarget.java index 60eea7bc..dcbc874e 100644 --- a/projects/samskivert/src/java/com/samskivert/swing/dnd/DropTarget.java +++ b/projects/samskivert/src/java/com/samskivert/swing/dnd/DropTarget.java @@ -3,6 +3,8 @@ package com.samskivert.swing.dnd; +import java.awt.Point; + /** * A drop target is associated with a component and represents a valid * place to end a drag and drop. @@ -29,5 +31,5 @@ public interface DropTarget /** * Called when the drop is actually executed. */ - public void dropCompleted (DragSource source, Object data); + public void dropCompleted (DragSource source, Object data, Point pos); }