Skip to content

fix: macOS ScrollView resize and content inset behavior#2732

Merged
Saadnajmi merged 3 commits intomicrosoft:mainfrom
Saadnajmi:live-resize
Mar 26, 2026
Merged

fix: macOS ScrollView resize and content inset behavior#2732
Saadnajmi merged 3 commits intomicrosoft:mainfrom
Saadnajmi:live-resize

Conversation

@Saadnajmi
Copy link
Copy Markdown
Collaborator

@Saadnajmi Saadnajmi commented Oct 15, 2025

Summary

  • preserve macOS ScrollView position during live resize in root and surface hosting views
  • align Fabric ScrollView contentInset and contentOffset behavior with the existing macOS scrollview implementation
  • prevent resize-driven scroll drift in the macOS Paper ScrollView path

Test Plan

  • Build RNTester-macOS
  • Verify RNTester runs normally
  • Manually resize windows containing ScrollView content and confirm content offset remains stable

@Saadnajmi Saadnajmi requested a review from a team as a code owner October 15, 2025 22:11
@Saadnajmi Saadnajmi changed the title chore: pick a change around viewDidEndLiveResize chore: pick a bunch of scrollview changes Oct 15, 2025
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 26, 2026

⚠️ No Changeset found

Latest commit: c3053bc

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@Saadnajmi Saadnajmi changed the title chore: pick a bunch of scrollview changes Fix macOS ScrollView resize and content inset behavior Mar 26, 2026
@Saadnajmi Saadnajmi changed the title Fix macOS ScrollView resize and content inset behavior fix: macOS ScrollView resize and content inset behavior Mar 26, 2026
@Saadnajmi Saadnajmi force-pushed the live-resize branch 2 times, most recently from 04db248 to e7202bc Compare March 26, 2026 00:35
@Saadnajmi Saadnajmi merged commit 888b052 into microsoft:main Mar 26, 2026
16 checks passed
Saadnajmi added a commit to Saadnajmi/react-native-macos that referenced this pull request Mar 27, 2026
## Summary

- preserve macOS ScrollView position during live resize in root and
surface hosting views
- align Fabric ScrollView contentInset and contentOffset behavior with
the existing macOS scrollview implementation
- prevent resize-driven scroll drift in the macOS Paper ScrollView path

## Test Plan

- Build RNTester-macOS
- Verify RNTester runs normally
- Manually resize windows containing ScrollView content and confirm
content offset remains stable
Saadnajmi added a commit that referenced this pull request Mar 28, 2026
…selection, CVEs) (#2876)

## Summary

Backport of 10 commits from `main` to `0.81-stable`:

- **fix(spm):** fix pre-existing macOS porting bugs (#2869)
- **fix(transforms):** enable transforms on new arch and fix hit testing
on both arches (#2866)
- **chore(deps-dev):** bump undici from 5.29.0 to 6.24.0 (#2871)
- **fix(fabric):** colors not respecting dark mode appearance, implement
platform color (#2867)
- **fix:** adjust content inset behavior for macOS (#2806)
- **fix:** reduce dependency CVE overrides and refresh vulnerable
transitive deps (#2874)
- **feat(fabric, text):** support native text selection when
selectable={true} (#2864)
- **fix:** macOS ScrollView resize and content inset behavior (#2732)
- **docs:** add backporting guide and automation (#2863)
- **fix(fabric, textinput):** support `enableFocusRing`

### Conflict resolutions

- `RCTUIView.h/m` → On 0.81-stable, `RCTUIView` lives in
`React/Base/RCTUIKit.h` and `React/Base/macOS/RCTUIKit.m` (the RCTUIKit
module refactor hasn't landed on 0.81). Transform changes were manually
applied to these files.
- `RCTUIKitCompat.h/m` → `NSColor (RCTAppearanceResolving)` category was
added to `RCTUIKit.h/m` instead.
- Lockfile conflicts resolved by accepting incoming CVE fixes.

## Test Plan

- Same as the original PRs
- Verify transforms render correctly on macOS (old + new arch)
- Verify dark mode color resolution works in Fabric
- Verify ScrollView resize and content inset behavior
- Verify text selection with selectable={true}
- Verify enableFocusRing on TextInput in Fabric

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: eadron <eadron@users.noreply.github.com>
Co-authored-by: Kyle Essenmacher <15271436+kessenma@users.noreply.github.com>
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.

3 participants