private boolean checkDestFragment(ProgramNode destNode, 
		ProgramNode dropNode, int dropAction) {
			
			
        if (dropAction != DnDConstants.ACTION_MOVE) {
            return false;
        }
        if (dropNode.isFragment()) {
            return true;   // Fragment -> Fragment means Merge Fragments
        }
        ProgramModule dropModule = dropNode.getModule();
        if (dropModule.isDescendant(destNode.getFragment())) {
            return false;
        }
        return true; // Module -> Fragment means flatten Module, i.e.,
                     // move all code units from descendant fragments to
                    // destination fragment...
	}
Check whether the drop is ok given that destNode is a fragment.
@param destNode fragment node
@param dropNode node that is getting dropped
@param dropAction move or copy action
@return true if the destNode is a valid drop target
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DnDMoveManager.java