mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-18 05:09:52 +02:00
* macOS: use the native menu bar instead of the in-window menus (#887) On macOS the menus move from the title bar to the menu bar at the top of the screen, built with muda from the same rows as the in-window bar (menu_items). Linux, Windows and the web keep the in-window menus, and so does macOS with --in-window-menus or PHOTOCRAFT_IN_WINDOW_MENUS=1. The Mac layout (native_menu.rs, platform-free and tested everywhere): - a PhotoCraft app menu: About (from Help), Settings (Edit › Preferences), Services, Hide, Hide Others, Show All, and Quit, which is still file.exit so the unsaved-changes prompt runs; - a Window menu AppKit knows (Minimize, Zoom, Bring All to Front, the window list) and a Help menu with the system search field; - PhotoCraft keeps Photoshop's ⌘H (Extras), ⌘M (Curves), ⌘W (Close) and ⌘, (Hide Layers): Hide and Settings have no shortcut, Minimize is ⌃⌘M. Key equivalents are handed back to egui as the key presses they were, so shortcuts run through shortcuts::handle exactly as before: text fields keep ⌘C/⌘V/⌘Z, dialogs and Camera Raw stay modal. A click runs the command like an in-window click. The menu is updated only when state changes, in place, and rebuilt only when its structure does. On every platform: - menu rows show the shortcut that runs them: 12 live items (Undo, Redo, Cut, Copy, Paste, Hide Layers, …) showed none; - Image › Mode, View › Proof Setup, Proof Colors, Gamut Warning and Isolate Layers stay check items with no document open, so opening one doesn't change the menu's structure. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Native menu: test it against AppKit; fix the Window/Help menus and ⌘R routing tests/mac_menu_appkit.rs (harness = false, main thread, like the tablet crate's monitor test) installs the real muda menu and reads AppKit's menu bar back: the PhotoCraft app menu, Quit ⌘Q, no Exit in File, the Window and Help menus registered with NSApp, and Layer › New › Layer… enabled in place (same NSMenu) once a document opens. It then sends a real ⌘R key-down through -[NSMenu performKeyEquivalent:], which must reach egui as ⌘R and run View › Rulers once, and chooses Rulers by click and by ↩ in the open menu, which must run as clicks. It found two bugs, fixed here: - Window and Help were never registered: muda looks the submenus up in the installed main menu, so set_as_*_menu_for_nsapp must come after init_for_nsapp. The Window menu didn't list windows. - AppKit matched ⌘R to Filter › Lens Correction (⇧⌘R), and the menu handed egui the matched item's shortcut, so ⌘R ran Lens Correction. Key equivalents now go back with the modifiers actually held. Also a kittest: the title bar draws no menu titles with the Mac menu bar. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Mac app menu: Language and Appearance, Hide on ⌃⌘H (aligned with VectorCraft) App settings live in the app menu, as on a Mac and as VectorCraft does: - Language ▸ after Settings: Auto, then each UI language in its own name, the interface.language preference checked; choosing one runs prefs.set (unknown codes are refused). - Appearance ▸: the themes (now check items, in-window too) and Next Theme move from Window › Theme to the app menu. - Hide PhotoCraft takes ⌃⌘H when ⌘H is View › Extras, as Photoshop does (Minimize already takes ⌃⌘M). The other Craft apps use the same app menu, Window menu and --in-window-menus / <APP>_IN_WINDOW_MENUS opt-out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: bflatastic <bombayapirat@gmail.com> |
||
|---|---|---|
| .. | ||
| photocraft | ||
| photocraft-cli | ||
| photocraft-web | ||