Skip to content

Keep the gutter below scroll view overlays - #437

Merged
simonbs merged 1 commit into
mainfrom
fix/gutter-scroll-edge-order
Oct 24, 2026
Merged

simonbs merged 1 commit into
mainfrom
fix/gutter-scroll-edge-order

Conversation

@simonbs

@simonbs simonbs commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

The line-number gutter can remain sharp above a navigation scroll-edge blur because each layout pass brings it in front of every scroll-view subview. The existing workaround depends on finding a private _UIScrollPocket view, which no longer matches the current UIKit hierarchy.

Place the gutter immediately above the text input view so it still covers text and selection content while preserving overlays above both. Remove the private-class lookup and its cached view.

Validation:

  • All 161 package tests pass on an iPhone 17 Pro simulator running iOS 27.2, with no build warnings.
  • The overlay-ordering regression fails against the previous implementation and passes with this change. Tests also cover line-number visibility changes and horizontal gutter pinning.
  • Verified the standard soft navigation scroll-edge effect in light and dark appearance on iOS 27.2, without custom blur views or layer-position overrides.
  • Built and ran the bundled Example app and Runestone Editor 1.6.2 against this revision on iOS 27.2. Checked light/dark rendering, vertical and horizontal gutter scrolling, selection handles, caret rendering, typing, and native undo. The Example also passed line-number visibility toggling. Runestone Editor used a disposable scratch document with line numbers enabled through public view settings in the debugger; its existing header blur and entitlement code were unchanged.
  • GitHub build/test and example-project jobs pass on Xcode 15.2 and 16.2; documentation and SwiftLint jobs pass.
  • Strict SwiftLint passes for both changed files. Full-repository lint reports five existing prefer_self_in_static_references violations in unchanged files.
  • An iOS 26 runtime was not available locally.

Copilot AI balanced review requested due to automatic review settings October 24, 2026 20:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@simonbs
simonbs merged commit 99947be into main Oct 24, 2026
9 checks passed
@simonbs
simonbs deleted the fix/gutter-scroll-edge-order branch October 24, 2026 20:48
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.

2 participants