On Thu, 3 Aug 2023 23:02:29 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
>> When a table has padding or the `layoutChildren` method inside the table >> skin is overridden (and x/y are modified), the drag drag header, column >> overlay and column line are not correctly aligned. >> >> The reason is that the positions were calculated incorrectly. >> - **Column overlay and column line** >> Always calculate in the x and y from the table. The x and y variables >> contain the snapped insets (padding) and possible modifications from >> subclasses. >> - **Drag header** >> Calculate the drag x offset local bounds from the parent header (which is >> either the parent column header or the root header) >> Before, the local bounds were calculated from the table, which will wrongly >> calculate in the padding. >> We do not want to know the local bounds based of the whole table but of our >> header we are in. > > modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/TableViewSkinTest.java > line 79: > >> 77: @Test >> 78: void testInitialColumnResizeNodePositions() { >> 79: TableView<String> tableView = new TableView<>(); > > question: would it make sense to test with scene scale(s) other than 100%? > just to see if there is no failures with fractional scales? > (the asserts would need to use non-0 tolerance) It probably won't hurt. But since the mismatch is visible even at a normal scale, I didn't bothered to do so. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1193#discussion_r1284088011