openpencil/crates/openpencil-desktop/src
Kayshen-X 6481c3fee9 refactor(desktop): extract rotate-cursor builder into cursor_icon.rs
`main.rs` had grown to 804 lines, 4 over the 800-line ceiling
documented in CLAUDE.md. `make_rotate_cursor_rgba` is the longest
self-contained helper in the file (~70 lines) and depends only on
`skia_safe`, so it's a clean cut:

- New file: `crates/openpencil-desktop/src/cursor_icon.rs` (74
  lines). Function visibility lifted to `pub(crate)` so main can
  call it via `cursor_icon::make_rotate_cursor_rgba()`.
- `main.rs` lost lines 62-131, drops to 735 lines (well under
  cap).
- `mod cursor_icon;` slotted between `chat_subprocess` and `export`
  in the alphabetical mod list.
- The single call site (line 250) qualified with the module path.

No behavior change — function moved verbatim with all comments +
the two-pass halo/core stroke logic intact.

Closes Task #55 follow-up cap violation. 54 desktop tests still
pass. 250+ shell-core tests pass. shell-native 20 tests pass.

Combined with the prior input.rs split (5caa2eb3), every OP source
file is now under the 800-line cap.
2026-05-14 17:38:16 +08:00
..
chat_claude.rs feat(desktop/chat): Claude Code adapter via anthropic-agent-sdk 2026-05-14 16:52:17 +08:00
chat_copilot.rs feat(desktop/chat): Copilot CLI adapter via copilot-sdk 2026-05-14 16:54:33 +08:00
chat_http_server.rs fix(desktop/chat): downgrade HttpServer for_cli — wire protocol not verified 2026-05-14 17:06:07 +08:00
chat_runtime.rs fix(desktop/chat): preserve BuiltIn history + cross-platform IPC hardening 2026-05-14 16:24:05 +08:00
chat_subprocess.rs feat(desktop/chat): HttpServerProvider for Codex + OpenCode serve mode 2026-05-14 16:57:14 +08:00
cursor_icon.rs refactor(desktop): extract rotate-cursor builder into cursor_icon.rs 2026-05-14 17:38:16 +08:00
export.rs feat(shell): PDF multi-page export via skia built-in backend 2026-05-14 14:06:18 +08:00
export_pdf.rs fix(shell): anchor click-without-move pollutes undo; PDF uses uniform page size 2026-05-14 14:20:27 +08:00
main.rs refactor(desktop): extract rotate-cursor builder into cursor_icon.rs 2026-05-14 17:38:16 +08:00
pen_doc_adapter.rs feat(shell): wire Document.var_table + canonical loader populates from PenDocument 2026-05-14 14:52:24 +08:00
pen_doc_adapter_tests.rs feat(shell): canonical .op loader + jian-core layout + visual fidelity pass 2026-05-14 09:26:08 +08:00
pen_doc_path_bounds.rs feat(shell): canonical .op loader + jian-core layout + visual fidelity pass 2026-05-14 09:26:08 +08:00
persistence.rs fix(shell): 3 codex stop-gate regressions (anchor drag, MCP id, doc load reset) 2026-05-14 15:18:02 +08:00
settings_io.rs feat(shell): canonical .op loader + jian-core layout + visual fidelity pass 2026-05-14 09:26:08 +08:00