Initiating drag results in the column header adopting the respective cell drag and drop states. Cells in the column swap with adjacent cells as soon as the cell’s left/right edge moves beyond the adjacent cell’s left/right edge, depending on the direction of dragging.
In case a column is not moveable, the drag handle simply doesn’t appear.
In case a drag ends over an area that cannot receive a drop, the column header animates back to its point of origin.