Implement contextMenuHidden property for TextInput fabric architecture #14804
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.
This PR implements the missing
contextMenuHidden
property for the fabric implementation of TextInput, bringing feature parity with the Paper implementation.Problem
The
contextMenuHidden
property was available in React Native Windows Paper viaTextInputViewManager
but was not implemented in the fabric architecture. While the property was defined in the props structure (WindowsTextInputProps
), the actual functionality to suppress context menus was missing from the fabricWindowsTextInputComponentView
.Solution
Implemented context menu suppression by intercepting context menu triggers before they reach the RichEdit control:
Right-click handling
In
OnPointerReleased
, whencontextMenuHidden
is true,WM_RBUTTONUP
messages are not forwarded to the RichEdit control:Keyboard shortcut handling
In
OnKeyDown
, whencontextMenuHidden
is true, context menu keyboard shortcuts are intercepted:Testing
textinput-contextmenuhidden
)Usage
Backward Compatibility
contextMenuHidden={true}
is explicitly setcontextMenuHidden={false}
) remains unchangedFixes #13123.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.