Skip to content

Native Edit menus expose one working action per standard shortcut #3301

Description

@jsmestad

Type: Bug
Severity: Medium. Duplicate native Edit entries expose disabled defaults alongside the working custom actions and can shadow shortcuts.
Related: #556, #3285

What

The running macOS application's Edit menu contains disabled standard Undo, Redo, Cut, Copy, Paste, Delete, and Select All entries, followed by a second custom set. Cmd+A on a focused disposable file produced no selection or mode change.

The duplicate entries were observed through the live accessibility tree. The installed application's exact revision was not established; the current source independently contains the incorrect command-group placement.

Why

Users should find one action for each standard editing operation, with the same behavior whether they click the menu or press its shortcut. Disabled duplicates make the menu misleading and leave shortcut ownership ambiguous.

Acceptance Criteria

  1. Edit exposes one entry for each standard Undo, Redo, Cut, Copy, Paste, and Select All action, with no disabled default duplicating a custom action. ✅ (PR #3393)
  2. Each advertised keyboard shortcut invokes the same single action as its menu entry when the editor is focused. Select All visibly selects the document. ✅ (PR #3393)
  3. With a native query or settings field focused, menu actions and shortcuts operate on that field's text and history, never the document behind it. ✅ (PR #3393)
  4. Connected, disconnected, and unavailable-action states have accurate enablement without reintroducing duplicate entries or swallowed shortcuts. ✅ (PR #3393)
  5. A production menu test inspects the assembled NSMenu and key equivalents, and a macOS interaction check verifies editor and native-field focus. ✅ (PR #3393)

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: macos-guimacOS native GUI frontend (Swift/Metal)bugSomething isn't workingpriority: highImportant for usabilityseverity: mediumRecoverable correctness or performance degradation; provisional when runtime impact is unmeasured

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions