RFR: 8087673: [TableView] TableView and TreeTableView menu button overlaps columns when using a constrained resize policy.
Jose Pereda
jpereda at openjdk.org
Tue Aug 30 09:36:25 UTC 2022
On Mon, 29 Aug 2022 22:40:15 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> The corner region is currently laid out with this assumption:
>>
>> // position the top-right rectangle (which sits above the scrollbar)
>>
>> However, the vertical scrollbar is not always visible. Therefore, when that is the case, the corner region is laid out on top of the table column headers, overlapping any of their graphic or text content. In case of the last visible column header, it is not always possible to scroll horizontally to see the full content, either because of a constrained resize policy or because there is no more space left after the last column.
>>
>> This PR fixes this issue by considering as padding for the last visible column header the presence of the corner region over it, only when the vertical scrollbar is not visible and the corner region is.
>>
>> A couple of tests have been added to both TableViewTest and TreeTableViewTest.
>>
>> Test 1: Before and after the changes :
>>
>> <img width="312" alt="image" src="https://user-images.githubusercontent.com/2043230/187190928-efc29e38-8de2-4daf-8eff-a218d6fae181.png">
>> <img width="312" alt="image" src="https://user-images.githubusercontent.com/2043230/187190991-deaa88b3-2f52-48bc-b3ec-107a5151f7b5.png">
>>
>> Test 2: Before (sort arrow is there, but not visible) and after the changes:
>> <img width="412" alt="image" src="https://user-images.githubusercontent.com/2043230/187191310-fb348d8c-84fc-4254-a1a5-91811bf09b79.png">
>> <img width="412" alt="image" src="https://user-images.githubusercontent.com/2043230/187191358-0d4937cb-b3b4-4530-9489-ff8cbf0c8443.png">
>
> modules/javafx.controls/src/test/java/test/javafx/scene/control/TableViewTest.java line 5883:
>
>> 5881: assertTrue(thumbMaxX < cornerMinX);
>> 5882:
>> 5883: sl.dispose();
>
> may be in try/finally to dispose of the StageLoader if test throws an exception?
There are no exceptions expected to happen in these new tests and I don't see that we use try-finally with `StageLoader` by default, is this change really required?
-------------
PR: https://git.openjdk.org/jfx/pull/886
More information about the openjfx-dev
mailing list