Improve logging and typing for sysListView32#13657
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
|
Do we understand why in-process fails in this case? Are you planning to follow this up for 2022.2 perhaps by adding additional logging to the in-process code to fix this properly? |
|
According to #13659 (comment), the build of this PR fixes #13659. |
This comment was marked as resolved.
This comment was marked as resolved.
|
For reference the docs to LVM_GETCOLUMNORDERARRAY and SendMessage @seanbudd When SendMessage fails, can you use GetLastError to extend the log message. |
This comment was marked as resolved.
This comment was marked as resolved.
fb2953f to
9bc6445
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
Summary of the issue: When developing #13657, logging NVDAObject.appModule.helperLocalBindingHandle was helpful. NVDAObject._get_devInfo is considered too complex, and should aim to be shortened. Description of how this pull request fixes the issue: Moves the appModule devInfo logging out of NVDAObject._get_devInfo into AppModule.get_devInfo. Adds appModule.helperLocalBindingHandle to the log info for an NVDAObject. Testing strategy: Test with NVDA+F1 on various NVDAObjects.
This comment was marked as off-topic.
This comment was marked as off-topic.
|
Hi @seanbudd |
This reverts commit f90caa9.
|
I found in an application's list Control that NVDA doesn't report list items correctly, |
|
It looks like this PR should have been included in 2022.1 |
Fix up of #13560, #13271 Summary of the issue: When out-of-process failed, an empty array was returned instead of None. This could have led to incorrect reporting of list items. For example, trying to get the contents of the second column of the list/table/report, the array is initialized with all values of zero, if used without being filled with valid data all columns will report the same thing. #13271 notes: >How likely are cases where injection doesn't work and the outproc variants succeed? I guess this is pretty unlikely, unless we're running under Windows Store. - If injection doesn't work there will be no `helperLocalBindingHandle`, out of process approach will be tried. - If an application like StartIsBack/StartAllBack doesn't handle the Windows Message properly then it doesn't matter if the message is sent in-process or out-of-process. Description of how this pull request fixes the issue: - When possible, use in process approach to get the column order array. It should be possible if there is a `helperLocalBindingHandle` - Don't return an array filled with zeros, return None when out-of-process fails.
Link to issue number:
Fix up of #13560, #13271
Summary of the issue:
When out-of-process failed, an empty array was returned instead of None.
This could have led to incorrect reporting of list items.
For example, trying to get the contents of the second column of the list/table/report, the array is initialized with all values of zero, if used without being filled with valid data all columns will report the same thing.
#13271 notes:
helperLocalBindingHandle, out of process approach will be tried.Description of how this pull request fixes the issue:
helperLocalBindingHandleTesting strategy:
Manual testing:
Confirm affected applications are tested, outlined in #8175 (comment)
Known issues with pull request:
Navigation of menu items using StartIsBack/StartAllBack is still broken #13659.
When navigating through the start menu with the application StartAllBack/StartIsBack installed, a layer is created over file explorer. NVDA uses the file explorer app module, but fetching the column order array with SendMessage fails.
We fetch the column order array (LVM_GETCOLUMNORDERARRAY) with SendMessage. While other related ListView messages are successful, we cannot be determine the correct data without a known column order array.
When this fails, 3 different errors are reported:
We are uncertain why this fails, but expect it is to do with the StartIsBack/StartAllBack dll that is injected into file explorer.
Other messages succeed.
Change log entries:
Not needed, minor fix up without expected user changes.
Code Review Checklist: