void (@NotNull MouseEvent e) { if (!isDraggingEnabled(e)) { return; } mouseInputListener.mouseDragged(convertMouseEvent(e)); // if I change cursor on mouse pressed, it will change on double-click as well // and I do not want that if (header.getDraggedColumn() != null) { if (header.getCursor() == Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)) { header.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); } int draggedColumn = header.getTable().convertColumnIndexToView(header.getDraggedColumn().getModelIndex()); int targetColumn = draggedColumn + (header.getDraggedDistance() < 0 ? -1 : 1); if (targetColumn < 0 || targetColumn >= header.getTable().getColumnCount()) return; if (!canMoveOrResizeColumn(header.getTable().convertColumnIndexToModel(targetColumn))) { mouseReleased(e); //cancel dragging unmovable column } } }