feat: lock individual dividers or the whole container (#73)#128
Merged
Conversation
151d6a2 to
d9928ea
Compare
Adds `ResizableDivider.enabled` for per-divider locking and `ResizableContainer.resizable` for container-wide locking. Both default to `true`. A divider is interactive only when both flags are `true`; when locked, drag/tap/hover handlers and the resize cursor are suppressed. Programmatic resizing via `ResizableController` is unaffected. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
a2024ec to
ce92f5d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #73.
Adds two interaction-locking surfaces (both default
true, fully back-compat):ResizableDivider.enabled— locks a single divider.ResizableContainer.resizable— locks every divider in the container at once.A divider is interactive only when both flags are
true. When locked, drag/tap/hover handlers and the resize cursor are suppressed; the divider remains visually present. Programmatic resizing viaResizableControlleris unaffected.Implementation notes:
ResizableContainerDividertakes a separateenabledparameter so the existing placeholder constructor'sonResizeUpdate == nullsignal stays distinct from "locked."_buildDividerSlot, so toggling either flag at runtime works without controller invalidation.MouseCursor.deferwhen locked, so any underlying cursor shows through; otherwise the configuredcursorstill wins.enabledis included inResizableDivider.propssolistEqualsand the in-place update path notice config-only flips.Test plan
dart analyzecleanvery_good testpassessetSizesstill works whenresizable: false🤖 Generated with Claude Code