[Bug 356373] [Regression] Drag and Drop source file gets deleted after drop in WPE
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java
index cb10902..da72dd2 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java
@@ -20,6 +20,7 @@
import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData;
import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData;
import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
@@ -116,10 +117,19 @@
}
text.setCaretOffset(_location);
Command command = getCommand(event);
- if (command == null) {
- return;
+ if (command != null) {
+ command.execute();
}
- command.execute();
+
+ // For a resource transfer, we don't want the source drag listener
+ // to do cleanup and actually remove the source file. See the
+ // Javadoc note in the Navigator view's CommonDropAdapterAssistant
+ // handleDrop() method.
+ if (event != null) {
+ if (event.detail != DND.DROP_NONE) {
+ event.detail = DND.DROP_COPY;
+ }
+ }
}
private Command getCommand(DropTargetEvent event) {