diff options
Diffstat (limited to 'java/awt/dnd/DropTarget.java')
-rw-r--r-- | java/awt/dnd/DropTarget.java | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/java/awt/dnd/DropTarget.java b/java/awt/dnd/DropTarget.java index 2698b1dae..a3650567f 100644 --- a/java/awt/dnd/DropTarget.java +++ b/java/awt/dnd/DropTarget.java @@ -49,6 +49,7 @@ import java.awt.dnd.peer.DropTargetPeer; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.peer.ComponentPeer; +import java.awt.peer.LightweightPeer; import java.io.Serializable; import java.util.EventListener; import java.util.TooManyListenersException; @@ -160,12 +161,15 @@ public class DropTarget if (GraphicsEnvironment.isHeadless ()) throw new HeadlessException (); - component = c; - actions = i; + setComponent(c); + setDefaultActions(i); dropTargetListener = dtl; flavorMap = fm; setActive (b); + + if (c != null) + c.setDropTarget(this); } /** @@ -275,9 +279,16 @@ public class DropTarget public void addNotify(ComponentPeer p) { + Component c = component; + while (c != null && p instanceof LightweightPeer) + { + p = c.getPeer(); + c = c.getParent(); + } + if (p instanceof DropTargetPeer) { - peer = (DropTargetPeer) p; + peer = ((DropTargetPeer) p); peer.addDropTarget(this); } else |