mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 02:59:17 -06:00
On macOS every shortcut that appears in the menu bar was left to the native menu, and the egui shortcut handler skipped those keys. AppKit only offers a key press to the menu bar when it carries ⌘ or ⌃, or is a function key; a plain key (E, C, H, M, I, K, D, 0–9, P, U, Y…) or one with only ⇧ / ⌥ (⇧P, ⇧V, ⌥Y…) goes to the window's winit view instead. So all of those did nothing on macOS, while keys outside the menus (Space, G, X, ⌫) and ⌘ shortcuts worked. `publish_shortcuts` now lists only the shortcuts the menu bar really receives (`menu_delivers`: ⌘, ⌃ or a function key) in `native_shortcuts`. The others keep their accelerator on the menu item, so the menu still shows the key, and egui runs them. Checked in a release build by pressing keys (not via the control channel, which bypasses the native menu): C opens Crop & Rotate, E Edit, ⇧P Presets, 3 / 0 set and clear the rating; ⌘⇧H toggles the histogram once per press; typing "c" in the search field types and leaves Crop closed. The same build without this change ignored C, ⇧P and 3. ⌃ shortcuts (merges) are unchanged and were not tried. Regression test: native_menu::tests::single_key_shortcuts_stay_with_egui (fails with the previous behaviour: "E must be left to egui").