Skip to content

macOS: leave clicks, selection and drags of the lists to AppKit (#424) - #425

Merged
juev merged 10 commits into
mainfrom
macos-native-table
Oct 26, 2026
Merged

juev merged 10 commits into
mainfrom
macos-native-table

Conversation

@juev

@juev juev commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

The task list and the sidebar of macOS leave clicks, selection, menus and drags to AppKit where no product decision needs our own behaviour.

What changes

  • A click selects the row when the button goes down. A plain click on one of several selected rows still waits for the button to go up, because it may start a drag of all of them. Dragging an unselected row now selects it, as in Mail and Finder (R123 is updated).
  • A click on the empty space of the list clears the selection, as in system tables and in Things (R44 is updated).
  • Option with an arrow goes to the first or the last row; with Shift it extends the range.
  • Typing the start of a title selects the task. For a second after a typed letter, Space is part of the search and ⌫ does nothing, so typing "buy milk" does not complete or delete the task it has just selected.
  • A double click is the table's doubleAction.
  • The context menu of a row goes through NSTableView.menu(for:), so the table outlines the row while the menu is open. ⌃click is no longer handled by hand in the table and in a subtask line.
  • Several selected tasks are reordered by one drag in Inbox and in a list sorted by hand, and one undo returns them.
  • The events block and the clipboard note open on a click that ends over them (click gesture recognizer instead of mouseUp).
  • The sidebar draws its selection the system way while the keyboard is elsewhere (the always-emphasized row view of macOS: the task list on the system selection (SwiftUI List(selection:) or AppKit) instead of hand-made selection, clicks and menus #308 is removed).
  • Esc in a popover of a card closes the card as well. In the quick entry window, where Esc throws the card away, it still closes the popover alone.

Space, ⌫ and Return of the list stay as they are (as in Things and Mail), by the decision recorded in #424.

Checks

  • make apple, make apple-lint, make apple-test (new ReorderTests).
  • Hidden instance of the debug build with a separate data folder: type select ("га" → "Гамма", "b" → "beta"); Space and ⌫ during typing and after a pause (three runs); reordering two selected tasks before a third and one undo.

Not checked, since they need the mouse on a visible window: selection on press, double click, the menu and its outline on right click and ⌃click (also in a subtask line), dragging several tasks between rows, the events block and the clipboard note, the look of the sidebar, Esc in a popover.

Closes #424

@juev
juev merged commit 4dd2f3c into main Oct 26, 2026
4 checks passed
@juev
juev deleted the macos-native-table branch October 26, 2026 11:40
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.

macOS: leave clicks, selection and drags of the lists to AppKit

1 participant