Skip to content

[0.84] fix text input scaling#16289

Merged
microsoft-github-policy-service[bot] merged 2 commits into
microsoft:0.84-stablefrom
SBS-dlucas:0.84-fix-text-input-scaling
Jul 7, 2026
Merged

[0.84] fix text input scaling#16289
microsoft-github-policy-service[bot] merged 2 commits into
microsoft:0.84-stablefrom
SBS-dlucas:0.84-fix-text-input-scaling

Conversation

@SBS-dlucas

@SBS-dlucas SBS-dlucas commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes issue with TextInput text rendering when working with monitors with different screen scales.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Why

Without this fix, rendering a textinput on a screen with a different resolution from the "primary" monitor can cause the text in TextInputs to appear blank, or large offset from correct position.

Resolves [https://github.com/https://github.com//issues/16141]

What

Fixed logic for updating textinput layout

Screenshots

Before, in E2E-test-app-fabric:
Note that there is text in these inputs, but it is invisible (but the cursor is in the right place still)
textinput-bug

After, in E2E-test-app-fabric:
textinput

Testing

Locally tested rendering TextInput on different monitor scales

Changelog

Should this change be included in the release notes: yes

Resolved issue with TextInput text rendering when working with monitors with different screen scales.

Microsoft Reviewers: Open in CodeFlow

@SBS-dlucas
SBS-dlucas requested a review from a team as a code owner June 29, 2026 22:04
@vineethkuttan

Copy link
Copy Markdown
Contributor

/azp run PR

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 1 pipeline(s).

@vineethkuttan vineethkuttan added the AutoMerge Causes a PR to be automatically merged once all requirements are passed (label drives bot activity) label Jul 7, 2026
@microsoft-github-policy-service
microsoft-github-policy-service Bot enabled auto-merge (squash) July 7, 2026 15:34
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Performance Test Results

Branch: 0.84-fix-text-input-scaling
Commit: da8f430d
Time: 2026-07-07T16:01:10.821Z
Tests: 161/161 passed

✅ Passed

161 scenario(s) across 28 suite(s) — no regressions

SectionList

Scenario Mean Median StdDev Renders vs Baseline
SectionList mount 4.80ms 5.00ms ±0.42ms 1 +0.0%
SectionList unmount 0.30ms 0.00ms ±0.48ms 0 +0.0%
SectionList rerender 11.40ms 11.00ms ±1.71ms 2 +4.8%
SectionList with-3-sections-15-items 6.20ms 6.00ms ±1.55ms 1 +9.1%
SectionList with-5-sections-50-items 9.80ms 9.50ms ±2.44ms 1 +58.3%
SectionList with-10-sections-200-items 5.20ms 5.00ms ±0.63ms 1 -9.1%
SectionList with-20-sections-200-items 6.20ms 5.50ms ±2.94ms 1 +10.0%
SectionList with-section-separator 1.80ms 2.00ms ±0.42ms 1 +0.0%
SectionList with-item-separator 2.10ms 2.00ms ±0.32ms 1 +0.0%
SectionList with-header-footer 1.90ms 2.00ms ±0.32ms 1 +0.0%
SectionList with-section-footer 2.30ms 2.00ms ±1.34ms 1 +0.0%
SectionList with-sticky-section-headers 2.10ms 2.00ms ±0.57ms 1 +0.0%
SectionList with-empty-list 0.50ms 0.50ms ±0.53ms 1 -50.0%
SectionList with-50-sections-1000-items 2.40ms 2.00ms ±1.26ms 1 +0.0%

FlatList

Scenario Mean Median StdDev Renders vs Baseline
FlatList mount 4.40ms 4.00ms ±1.07ms 1 +0.0%
FlatList unmount 0.20ms 0.00ms ±0.42ms 0 +0.0%
FlatList rerender 10.80ms 10.00ms ±1.69ms 2 +11.1%
FlatList with-10-items 4.90ms 5.00ms ±0.32ms 1 +25.0%
FlatList with-100-items 4.80ms 4.00ms ±1.32ms 1 -20.0%
FlatList with-500-items 5.00ms 4.50ms ±1.56ms 1 +12.5%
FlatList with-1000-items 4.10ms 4.00ms ±0.74ms 1 +0.0%
FlatList horizontal 4.20ms 4.00ms ±0.42ms 1 -20.0%
FlatList with-separator 1.70ms 2.00ms ±0.48ms 1 +0.0%
FlatList with-header-footer 1.40ms 1.00ms ±0.52ms 1 -50.0%
FlatList with-empty-list 0.50ms 0.50ms ±0.53ms 1 +0.0%
FlatList with-get-item-layout 2.10ms 2.00ms ±1.20ms 1 +100.0%
FlatList inverted 1.30ms 1.00ms ±0.48ms 1 -33.3%
FlatList with-num-columns 3.30ms 3.00ms ±1.34ms 1 +0.0%

TouchableOpacity

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity mount 1.00ms 1.00ms ±0.00ms 1 +0.0%
TouchableOpacity unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TouchableOpacity rerender 1.00ms 1.00ms ±0.94ms 2 +0.0%
TouchableOpacity custom-active-opacity 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity disabled 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity with-all-handlers 0.50ms 0.50ms ±0.53ms 1 -50.0%
TouchableOpacity with-hit-slop 0.80ms 1.00ms ±0.42ms 1 +0.0%
TouchableOpacity with-delay 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity nested 1.30ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity multiple-10 5.53ms 5.00ms ±0.92ms 1 -16.7%
TouchableOpacity multiple-50 26.33ms 27.00ms ±2.94ms 1 -6.9%
TouchableOpacity multiple-100 32.53ms 25.00ms ±11.11ms 1 -50.0%

ScrollView

Scenario Mean Median StdDev Renders vs Baseline
ScrollView mount 0.30ms 0.00ms ±0.48ms 1 +0.0%
ScrollView unmount 0.20ms 0.00ms ±0.42ms 0 +0.0%
ScrollView rerender 0.50ms 0.50ms ±0.53ms 2 -50.0%
ScrollView children-20 3.47ms 3.00ms ±0.52ms 1 -25.0%
ScrollView children-100 17.47ms 17.00ms ±2.50ms 1 +6.3%
ScrollView horizontal 3.60ms 4.00ms ±0.52ms 1 +0.0%
ScrollView sticky-headers 3.10ms 3.00ms ±0.99ms 1 +0.0%
ScrollView scroll-indicators 0.90ms 1.00ms ±0.32ms 1 +0.0%
ScrollView nested 1.20ms 1.00ms ±0.42ms 1 +0.0%
ScrollView content-container-style 0.70ms 1.00ms ±0.48ms 1 +0.0%
ScrollView children-500 23.13ms 19.00ms ±16.37ms 1 +0.0%

TouchableHighlight

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight mount 0.50ms 0.50ms ±0.53ms 1 +0.0%
TouchableHighlight unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TouchableHighlight rerender 0.70ms 1.00ms ±0.48ms 2 +0.0%
TouchableHighlight custom-underlay-color 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight custom-active-opacity 0.30ms 0.00ms ±0.48ms 1 +0.0%
TouchableHighlight disabled 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight with-all-handlers 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight with-hit-slop 0.20ms 0.00ms ±0.42ms 1 +0.0%
TouchableHighlight nested-touchables 0.90ms 1.00ms ±0.32ms 1 +0.0%
TouchableHighlight multiple-touchables-10 2.10ms 2.00ms ±0.57ms 1 -33.3%
TouchableHighlight multiple-touchables-50 14.30ms 14.00ms ±2.26ms 1 +12.0%
TouchableHighlight multiple-touchables-100 27.40ms 26.00ms ±5.10ms 1 +15.6%

Pressable

Scenario Mean Median StdDev Renders vs Baseline
Pressable mount 0.50ms 0.50ms ±0.53ms 1 +Infinity%
Pressable unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
Pressable rerender 0.90ms 1.00ms ±1.20ms 2 +100.0%
Pressable with-all-handlers 0.50ms 0.50ms ±0.53ms 1 +Infinity%
Pressable with-style-function 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable disabled 0.30ms 0.00ms ±0.48ms 1 +0.0%
Pressable with-hit-slop 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable nested 0.70ms 1.00ms ±0.48ms 1 +0.0%
Pressable multiple-10 3.07ms 3.00ms ±0.26ms 1 +0.0%
Pressable multiple-50 15.80ms 16.00ms ±1.52ms 1 +14.3%
Pressable multiple-100 16.33ms 10.00ms ±10.60ms 1 -16.7%

Modal

Scenario Mean Median StdDev Renders vs Baseline
Modal mount 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Modal rerender 0.70ms 1.00ms ±0.48ms 2 +Infinity%
Modal slide-animation 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal fade-animation 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal transparent 0.30ms 0.00ms ±0.48ms 1 +0.0%
Modal with-callbacks 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal rich-content 2.00ms 2.00ms ±1.15ms 1 +0.0%
Modal with-accessibility 0.40ms 0.00ms ±0.52ms 1 +0.0%

Image

Scenario Mean Median StdDev Renders vs Baseline
Image mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Image rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
Image with-resize-mode 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image with-border-radius 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image with-tint-color 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image with-blur-radius 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image multiple-10 1.00ms 1.00ms ±0.38ms 1 +0.0%
Image multiple-50 4.00ms 4.00ms ±0.93ms 1 +33.3%
Image multiple-100 8.33ms 8.00ms ±1.35ms 1 +0.0%

ActivityIndicator

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
ActivityIndicator unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
ActivityIndicator rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
ActivityIndicator size-large 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator size-small 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator with-color 0.00ms 0.00ms ±0.00ms 1 +0.0%
ActivityIndicator not-animating 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator multiple-10 0.73ms 1.00ms ±0.46ms 1 +0.0%
ActivityIndicator multiple-50 4.33ms 4.00ms ±1.29ms 1 +0.0%
ActivityIndicator multiple-100 8.20ms 8.00ms ±1.01ms 1 +14.3%

Switch

Scenario Mean Median StdDev Renders vs Baseline
Switch mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Switch rerender 0.20ms 0.00ms ±0.42ms 2 -100.0%
Switch value-true 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch disabled 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch custom-colors 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch on-value-change 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch multiple-10 1.40ms 1.00ms ±0.51ms 1 -50.0%
Switch multiple-50 9.87ms 9.00ms ±2.23ms 1 +0.0%
Switch multiple-100 17.67ms 17.00ms ±2.38ms 1 +6.3%

Button

Scenario Mean Median StdDev Renders vs Baseline
Button mount 0.50ms 0.50ms ±0.53ms 1 -50.0%
Button unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Button rerender 0.80ms 1.00ms ±0.42ms 2 +0.0%
Button disabled 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button with-color 0.50ms 0.50ms ±0.53ms 1 +0.0%
Button with-accessibility 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button multiple-10 5.67ms 5.00ms ±1.18ms 1 -16.7%
Button multiple-50 22.13ms 25.00ms ±8.13ms 1 -7.4%
Button multiple-100 15.67ms 15.00ms ±2.26ms 1 -21.1%

TextInput

Scenario Mean Median StdDev Renders vs Baseline
TextInput mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
TextInput unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TextInput rerender 0.10ms 0.00ms ±0.32ms 2 +0.0%
TextInput multiline 0.10ms 0.00ms ±0.32ms 1 +0.0%
TextInput with-value 0.00ms 0.00ms ±0.00ms 1 +0.0%
TextInput styled 0.20ms 0.00ms ±0.42ms 1 +0.0%
TextInput multiple-100 8.07ms 8.00ms ±1.28ms 1 +14.3%

View

Scenario Mean Median StdDev Renders vs Baseline
View mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
View unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
View rerender 0.40ms 0.00ms ±0.52ms 2 +0.0%
View nested-50 3.80ms 4.00ms ±1.26ms 1 +33.3%
View nested-100 8.33ms 8.00ms ±1.45ms 1 +14.3%
View shadow 0.20ms 0.00ms ±0.42ms 1 +0.0%
View border-radius 0.20ms 0.00ms ±0.42ms 1 +0.0%
View nested-500 17.07ms 10.00ms ±12.81ms 1 +0.0%

Text

Scenario Mean Median StdDev Renders vs Baseline
Text mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
Text unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Text rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
Text long-1000 0.20ms 0.00ms ±0.42ms 1 +0.0%
Text nested 0.30ms 0.00ms ±0.48ms 1 +0.0%
Text styled 0.10ms 0.00ms ±0.32ms 1 +0.0%
Text multiple-100 8.80ms 8.00ms ±1.42ms 1 +14.3%

SectionList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
SectionList native mount 5.77ms 6.01ms ±0.99ms 1 -7.6%

FlatList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
FlatList native mount 4.82ms 4.44ms ±1.11ms 1 -51.9%

TouchableHighlight.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight native mount 1.29ms 1.27ms ±0.06ms 1 -39.0%

TouchableOpacity.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity native mount 1.61ms 1.57ms ±0.16ms 1 -50.0%

Pressable.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Pressable native mount 1.51ms 1.49ms ±0.16ms 1 -40.8%

ScrollView.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ScrollView native mount 3.39ms 3.35ms ±0.43ms 1 -17.2%

ActivityIndicator.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator native mount 1.56ms 1.41ms ±0.59ms 1 -43.1%

TextInput.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TextInput native mount 1.83ms 1.79ms ±0.18ms 1 -56.2%

Switch.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Switch native mount 1.12ms 1.00ms ±0.44ms 1 -42.6%

Button.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Button native mount 1.63ms 1.55ms ±0.21ms 1 -40.5%

Modal.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Modal native mount 1.00ms 0.86ms ±0.51ms 1 -29.5%

Image.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Image native mount 1.60ms 1.58ms ±0.24ms 1 -30.2%

View.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
View native mount 1.05ms 0.98ms ±0.22ms 1 -31.6%

Text.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Text native mount 1.43ms 1.28ms ±0.44ms 1 -26.4%

@microsoft-github-policy-service
microsoft-github-policy-service Bot merged commit bd4bf78 into microsoft:0.84-stable Jul 7, 2026
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AutoMerge Causes a PR to be automatically merged once all requirements are passed (label drives bot activity)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants