PR #155 review round 1. Finding 1 (must fix): `try_split_active` had no production caller — `pmacs.window.split_horizontal` / `split_vertical`, and therefore `C-x 2` / `C-x 3`, still went through plain `split_active`. Splitting a focused panel made the root wrapper's final child a split rather than `Leaf(side)`, which both `Layout::compute`'s fixed pass and `document_subtree` key on: the panel band reverted to 1:1 weight division and an ordinary window ended up living inside it. Both bindings now route through the guard, and acc26 asserts through the real Lua path — a direct core call passes with the guard unwired, which is how it survived the first round. Finding 2: the armed-drag early return now checks the arming frontend, so one frontend's in-flight gesture cannot cancel or swallow another's mouse events. New acc30c. Finding 3: `paint_mode_line_graphemes`'s doc block was left heading `paint_divider_segment`; moved back. Finding 4: a recompile carries no `display`, so it took the raw switch and duplicated a panel-placed `*compilation*` into the document window. `start_run` now detects that the buffer already owns the panel slot. `pmacs.window.buffer` gained an optional window argument so an adopter can ask without selecting the panel first. New acc19b. Stage-2 hazard pins the review asked for, both in `src/daemon.rs`: a fresh attach while LOCAL is focused in a panel inherits LOCAL's document buffer, and an initial-target bootstrap whose `after-load` hook creates and selects a panel still reasserts into a document window. Minor: dropped listview's dead `p.side`; documented `focus_window`'s caller-validates contract; `jump_back` restores through `focus_window` so the "every focus change" contract holds; `params` / `resize` default to the acting frontend's selected window rather than the ambient one; widened the flexible-division math to u64 intermediates. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| async.lua | ||
| autosave.lua | ||
| comment.lua | ||
| compile.lua | ||
| completion.lua | ||
| desktop.lua | ||
| editops.lua | ||
| fold.lua | ||
| fs.lua | ||
| indent.lua | ||
| killring.lua | ||
| listview.lua | ||
| lsp.lua | ||
| mcp.lua | ||
| pair.lua | ||
| recentf.lua | ||
| saveplace.lua | ||
| syntax.lua | ||
| terminal.lua | ||
| window.lua | ||