Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java22
1 files changed, 13 insertions, 9 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
index b40971462..b237a4b9e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
@@ -192,16 +192,20 @@ public class CommonDnD implements IConfirmCallback {
public boolean validateFilesDrop(Object target, int operation, TransferData transferType) {
FileTransfer transfer = FileTransfer.getInstance();
String[] elements = (String[]) transfer.nativeToJava(transferType);
- if (elements.length > 0) {
- boolean moving = (operation & DND.DROP_MOVE) != 0;
- boolean copying = (operation & DND.DROP_COPY) != 0;
- IFSTreeNode hovered = (IFSTreeNode) target;
- if (hovered.isFile() && copying) {
- hovered = hovered.getParent();
- }
- return hovered.isDirectory() && hovered.isWritable() && (moving || copying);
+ if (elements == null) {
+ // see ResourceDropAdapterAssistant:validateDrop
+ // source names will be null on Linux. Use empty names to do
+ // destination validation.
+ // Fixes bug 29778
+ elements = new String[0];
}
- return false;
+ boolean moving = (operation & DND.DROP_MOVE) != 0;
+ boolean copying = (operation & DND.DROP_COPY) != 0;
+ IFSTreeNode hovered = (IFSTreeNode) target;
+ if (hovered.isFile() && copying) {
+ hovered = hovered.getParent();
+ }
+ return hovered.isDirectory() && hovered.isWritable() && (moving || copying);
}
/**

Back to the top