For single column SysListViews, ignore column order array as it is not required#13761
Conversation
|
@seanbudd, if I understand correctly, there has been a regression for some applications (StartisBack and the one in 13735) between 2021.3.5 and 2022.1. |
|
Just curious, why isn't CI generating the build? |
Because this pr is made against another branch (not beta, rc, master) |
|
@cary-rowen - you can test this build: https://ci.appveyor.com/api/buildjobs/tinlr9qek2w5cd8b/artifacts/output%2Fnvda_snapshot_try-fixSingleColumnSysListViews-25504%2Ccff35796.exe Sorry for the delay - we had to fix the build system |
I think this is overstating our confidence. To ensure we don't mislead future dev work, can you change this to "we don't know for sure, but this might not be implemented specifically for single column list controls." |
|
|
||
| def _get__columnOrderArray(self) -> Optional[ctypes.Array]: | ||
| return self._getColumnOrderArrayRaw(self.columnCount) | ||
| def _getColumn(self, column: int) -> Optional[int]: |
There was a problem hiding this comment.
I think the name of this could be more descriptive, and probably needs some docs.
I think the column order is to allow for a presentation based indexing, that maps to a logical/internal indexing of columns. Probably because columns can be reordered.
There was a problem hiding this comment.
I've changed the name to getMappedColumn and added a docstring.
|
Will NV Access consider creating an NVDA2022.1.1? |
05c0133 to
e167c76
Compare
| return self._getColumnOrderArrayRaw(self.columnCount) | ||
| If the column order array cannot be fetched from a multi-column SysListView , | ||
| returns None as a mapped column cannot be determined. | ||
| """ |
There was a problem hiding this comment.
| """ | |
| @param presentationIndex: Zero based index for the column as presented to the user. | |
| @return: The internal / logical column zero based index for the column. | |
| """ | |
There was a problem hiding this comment.
Fixed this: note that presentationIndex is actually a one based index, not zero based.
Link to issue number:
Fixes #13659, #13735
Summary of the issue:
Certain applications don't provide a column order array. For the case of single column list views, a column order array is unnecessary, as a default mapping can be assumed.
Description of how this pull request fixes the issue:
For single column list views, map the first column in the UX, to the first column index: i.e.
[0]is the column order array. When fetching from a multi column list view, log an error if the column order array is unknown.Testing strategy:
Manual testing
Known issues with pull request:
None
Change log entries:
Bug fixes:
Code Review Checklist: