Skip to content

feat(windows): native Ctrl/Shift multi-select and task keyboard navigation - #41

Merged
turinglambdaai merged 26 commits into
mainfrom
feat/windows-task-keyboard-multiselect
Oct 21, 2026
Merged

turinglambdaai merged 26 commits into
mainfrom
feat/windows-task-keyboard-multiselect

Conversation

@turinglambdaai

Copy link
Copy Markdown
Owner

Interaction gap

Taskly's Windows task rows were still SelectionMode="Single", unlike macOS selection behavior and Linux #33. Users couldn't Ctrl/Shift-select a range, keyboard-select multiple tasks, or use Return to edit the focused task.

Changes

  • Set task and search-result ListViews to native WinUI Extended selection mode (Ctrl/Shift click, Up/Down, Shift+arrow ranges).
  • Enter with exactly one selected task opens its edit dialog; Esc clears the current selection. Preserve native editing keys: TextBox keyboard events are not intercepted.
  • Preserve selected task IDs across list and search-result rebuilds, dropping only tasks no longer in the result set. This prevents live backend polls from unpredictably clearing selection.
  • Add stable UI Automation IDs and a packaged Windows acceptance assertion that ListView exposes CanSelectMultiple.
  • Document remaining parity gaps explicitly.

Dependencies

Stacked on #39 → #36 → #35 → #32. Merge in that order, rebase this PR after dependencies, then run three-platform integrated acceptance.

QA

  • Windows x64 native CI and packaged Product Acceptance green
  • Click, Ctrl-click, Shift-click, Up/Down and Shift+arrow range selection
  • Enter edits a single selected task; Esc clears; search results behave identically
  • Selection preserved when tasks are updated/reordered by changed-event refresh
  • Quick-add and inline text fields retain Enter/Esc shortcuts
  • Checkbox completion, context-menu commands and navigation remain independent of selection

Scope: This PR does not implement batch actions, inline editor or undo. They remain release-blocking parity tasks; do not merge/release based solely on this green check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant