SIGN IN SIGN UP

refactor(inject): break the macOS injector into scroll, browser and SPI modules

inject/macos.rs was 1130 lines: key and click synthesis, media keys, scroll synthesis with its three quantisers, the Accessibility-tree browser navigation with its Safari check, three inline modules of dlopen'd private SPI, and an inline tests module. Six of those are files under inject/macos/ now — scroll.rs, browser.rs, app_services.rs, dock.rs, symbolic_hotkey.rs, tests.rs — and macos.rs keeps the execute dispatch and CGEvent key and click posting, declares the modules in one place, and re-exports the three entry points inject.rs calls. The FFI inventory in .agents/rules/objc-ffi.md lists the new files and watches the directory.

Pure move: the inline modules changed only their indentation; the scroll and browser code only its imports and the visibility of what macos.rs and inject.rs call (pub(in crate::inject) for the two re-exported entry points). Every moved code line exists verbatim in the parent. macos.rs is 515 lines.
A
AprilNEA committed
0bdfaa6e3479dc2c87d92820cd9695c91477ea03
Parent: eff902e