Table columns are positioned using two styles applied to the left margin:
- Positioning: property: sticky;
- Offset, for example: left: 10px;
If a fixed column is dragged by the user—for example, via drag-and-drop—into the flexible area, the column is subsequently positioned incorrectly by the client. For the cells in the fixed column—which now becomes flexible—only the `sticky` positioning is removed, but not the offset. This causes the column to not be positioned horizontally as intended.
It is difficult to detect this within the application itself, since moving a table column causes the client to notify the server of the new column order. The server then rewrites the table itself. This means that the client-side swapping of cells is visible for only a fraction of a second and is barely noticeable to the user, as the server quickly overwrites it.
As a result of Ticket #27350, the client now updates its display immediately after the columns are reordered. It is no longer necessary for the server to update the table. The server only needs to adopt the model with the new column order. However, this logic has not yet been implemented.
Test
In table.js, comment out the contents of the `updateColumnOrder ` function. This prevents the client from notifying the server of the new column order. Then, in a table, drag a column from the fixed area to the flexible area. No empty space should appear.