diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java index 8964407cb09..2bd7e64837b 100644 --- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java +++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java @@ -229,6 +229,21 @@ public IStatus handleDrop(CommonDropAdapter aDropAdapter, } catch (CoreException e) { } } + // Also refresh the source containers when moving resources + // to ensure they are properly removed from the UI + if (resources != null && resources.length > 0 + && aDropAdapter.getCurrentOperation() != DND.DROP_COPY + && aDropAdapter.getCurrentOperation() != DND.DROP_LINK) { + for (IResource resource : resources) { + IContainer parent = resource.getParent(); + if (parent != null && parent.isAccessible() && !parent.equals(target)) { + try { + parent.refreshLocal(IResource.DEPTH_ONE, null); + } catch (CoreException e) { + } + } + } + } return status; } @@ -293,6 +308,17 @@ public IStatus handlePluginTransferDrop(IStructuredSelection aDragSelection, Obj } catch (CoreException e) { } } + // Also refresh the source containers when moving resources + // to ensure they are properly removed from the UI + for (IResource resource : resources) { + IContainer parent = resource.getParent(); + if (parent != null && parent.isAccessible() && !parent.equals(target)) { + try { + parent.refreshLocal(IResource.DEPTH_ONE, null); + } catch (CoreException e) { + } + } + } return Status.OK_STATUS; }