feat: add keepChildrenMounted parameter#9
Open
F1orian wants to merge 2 commits into
Open
Conversation
When true, all children stay in the widget tree regardless of viewport visibility — the app controls which items are in children, and canvas_kit skips its internal visibility culling. Default is false (existing behavior). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds an explicit `suppressInternalGestures` bool to CanvasKit. When true, the widget builds no internal pan/pinch GestureDetector and ignores pointer-signal (mouse-wheel) zoom, regardless of interactionMode or gestureOverlayBuilder. This replaces the implicit idiom of passing an empty `gestureOverlayBuilder: (_, _) => SizedBox.shrink()` purely to suppress the library's own gestures when the embedding app owns all input from a sibling layer stacked above CanvasKit. Backward compatible: defaults to false, and the previous programmatic+overlay suppression still applies. Also adds the package's first test/ directory (suppress_internal_gestures_test.dart) covering both the control (pans by default) and suppressed (no camera movement) paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Adds a
keepChildrenMountedparameter toCanvasKitandSimpleCanvas:true, all children stay in the widget tree regardless of viewport visibility — the app controls which items are inchildren, and canvas_kit skips its internal visibility culling.false, preserving existing behavior (off-screen children are culled).This is useful when the app already manages which items to render (e.g. based on its own spatial index or data model) and doesn't want canvas_kit to additionally cull based on viewport bounds.
Changes
keepChildrenMountedbool parameter toCanvasKit(defaultfalse)SimpleCanvasisVisible()check in the render loopTest plan
keepChildrenMounted: false(default) — existing culling behavior unchangedkeepChildrenMounted: true— all children remain mounted when panning/zooming off-screen