RFR: 8317771 [macos14] Expand/collapse a JTree using keyboard freezes the application in macOS 14 Sonoma
Alexander Zuev
kizune at openjdk.org
Thu Dec 21 21:15:47 UTC 2023
On Wed, 20 Dec 2023 09:28:47 GMT, Artem Semenov <asemenov at openjdk.org> wrote:
> NSAccessibility Outline is an accessibility representation of trees.
> This representation requires that the visible children be represented as a flat array.
> The child linearization algorithm available in ```CAccessibility.getChildrenAndRolesRecursive()``` is universal, i.e. suitable for any object with the role of a tree, but is not efficient, since it traverses the entire tree and selects suitable children.
> For JTree, this algorithm can be optimized by using TreePath, but the old algorithm will have to be retained to maintain versatility.
src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java line 799:
> 797: for (int i = 0; i < count; i++) {
> 798: TreePath path = tree.getPathForRow(i);
> 799: Accessible an = createAccessibleTreeNode(tree, path);
I see that you are creating the accessible tree node with reflection calling its constructor. Can you just elaborate if it is the only way to get hold of it and why getting a tree.getAccessible().getAccessibleChild(i) does not work or what kind of problem getting the tree node this way creates?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17165#discussion_r1434518050
More information about the client-libs-dev
mailing list