Skip to content

Fix canvas selection alignment with frozen panes - #40

Open
JueyingLi wants to merge 1 commit into
extend-hq:mainfrom
JueyingLi:fix/frozen-selection
Open

JueyingLi wants to merge 1 commit into
extend-hq:mainfrom
JueyingLi:fix/frozen-selection

Conversation

@JueyingLi

@JueyingLi JueyingLi commented Oct 14, 2026 •

Copy link
Copy Markdown

Fixes #39.

Selecting a frozen cell and scrolling hides its outline even though the cell remains visible and the name box still identifies it as selected. A range crossing frozen-pane boundaries can also paint its highlight over cells outside the selected range.

Render canvas selection outlines and fill handles through the existing four pane bounds and live viewport transforms. Use worksheet geometry for canvas selection previews, so frozen portions remain anchored and scrolling portions are clipped at pane boundaries. The DOM renderer follows its existing rendering path, and the public API is unchanged.

Validation:

  • Reproduced both failures on upstream 0.17.2 at 434e5a6 before the change.
  • Visually checked frozen-cell selection after vertical and horizontal scrolling, B2:E7 range selection across both frozen boundaries, 120% zoom, and a fill drag after scrolling.
  • pnpm typecheck passed for the package and playground.
  • pnpm test passed all 30 existing tests.
  • pnpm build passed. It reports the existing CJS import.meta warning in worker-client.ts.

Captioned before/after recordings and a synthetic reproduction workbook are attached to the issue. The recordings demonstrate B2; the multi-cell B2:E7 case was checked manually.

@vercel

vercel Bot commented Oct 14, 2026

Copy link
Copy Markdown

@JueyingLi is attempting to deploy a commit to the Extend Team on Vercel.

A member of the Team first needs to authorize it.

@JueyingLi

Copy link
Copy Markdown
Author

@andrewlu0 would you be able to review this frozen-pane selection fix? It addresses #39, which includes a synthetic workbook and captioned before/after recordings. The change reuses the existing four-pane bounds and live scroll/zoom transforms for selection outlines and fill handles. Type checking, all 30 existing tests, and the package build pass.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Selection highlight disappears or overlaps frozen cells when scrolling

1 participant