Skip to content

refactor(studio): isolate clip drag lifecycle#2698

Draft
miguel-heygen wants to merge 1 commit into
codex/studio-timeline-d-chromium-gate-v2from
codex/studio-timeline-d-clip-drag-lifecycle-v2
Draft

refactor(studio): isolate clip drag lifecycle#2698
miguel-heygen wants to merge 1 commit into
codex/studio-timeline-d-chromium-gate-v2from
codex/studio-timeline-d-clip-drag-lifecycle-v2

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

What

Extract clip-drag pointer-session lifecycle handling into one focused helper without changing drag semantics.

Why

Virtualized rows can unmount during a pointer session. The drag lifecycle needs one stable actor that owns capture, movement, cancellation, and exactly-once terminal cleanup before rendering becomes windowed.

How

  • Move pointer-session lifecycle logic out of the rendering hook.
  • Keep the existing drag mutation and snapping behavior intact.
  • Preserve explicit terminal cleanup so duplicate local/window events cannot commit twice.

This is D3 of the independent Family D draft Graphite stack. Its review base is the immutable, PR-less Family C baseline; Families A-C do not need to merge for this PR to be reviewed. It supersedes legacy PR #2634, which remains open for audit until landing.

Test plan

  • Unit tests added/updated
  • Manual testing performed
  • Documentation updated (not applicable)

Validated on the exact Family D tip through the focused Timeline interaction suite, full Studio suite, typechecks, formatting, lint, file-size checks, and the strict 50,000-element Chromium gate.

miguel-heygen commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator Author

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.

1 participant