Treat more syslistview32 controls as multi select#18926
Conversation
| LVS_REPORT = 0x0001 | ||
| LVS_TYPEMASK = 0x0003 | ||
| LVS_SINGLESEL = 0x0004 | ||
| LVS_OWNERDRAWFIXED = 0x0400 |
There was a problem hiding this comment.
Could you make this a FlagEnum or IntFlagEnum?
There was a problem hiding this comment.
Pull Request Overview
This PR updates the sysListView32 control handling to correctly recognize multi-select capabilities by checking for the absence of the LVS_SINGLESEL style flag rather than relying on default assumptions.
- Migrates hardcoded constants to a proper
ListViewWindowStyleIntFlag enum for better type safety - Implements proper multi-select detection logic in the
_get_statesmethod - Updates all references to use the new enum instead of module-level constants
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
seanbudd
left a comment
There was a problem hiding this comment.
Thanks @LeonarddeR - can you add a change log entry for the deprecated items?
Approved, otherwise
Link to issue number:
Fixes #18918
Summary of the issue:
NVDA doesn't recognize certain SysListView32 controls as multi select.
Description of user facing changes:
MP3 tag list view and other list views are now correctly recognized as multi select.
Description of developer facing changes:
None
Description of development approach:
SysListView32 turn out to be multiselect by default unless
LVS_SINGLESELis set. Accounted for that in code.Testing strategy:
Tested the STR for MP3 tag
Known issues with pull request:
None
Code Review Checklist: