public void dropRemove(DockableDragSource dragSource) {
		// before removing the dockable, we update its state to store its new
		// relative position
		Dockable d = dragSource.getDockable();
		DockableState state = context.getDockableState(d);
		if (state != null) {
			// some drag source don't have state associated with them (like
			// whole TabbedContainers)
			DockableState updatedState = new DockableState(state,
					new RelativeDockablePosition(
							getRelativeAncestorContainer(d), d));
			context.setDockableState(dragSource.getDockable(), updatedState);
		}

		Container dockableContainer = dragSource.getDockableContainer();
		if (dockableContainer instanceof TabbedDockableContainer) {
			remove((TabbedDockableContainer) dockableContainer);
		} else {
			remove(dragSource.getDockable());
		}
		// removeFromTabbedGroup(dockable); 2005/10/10 don't remove from tab :
		// it's too early to be sure we won't need it again
		// for example : when removing from a tab to create a floating tab (we
		// have to keep the old attachment)
	}