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
contextMenuHiddenproperty for the fabric implementation of TextInput, bringing feature parity with the Paper implementation.Problem
The
contextMenuHiddenproperty was available in React Native Windows Paper viaTextInputViewManagerbut 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, whencontextMenuHiddenis true,WM_RBUTTONUPmessages are not forwarded to the RichEdit control:Keyboard shortcut handling
In
OnKeyDown, whencontextMenuHiddenis 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.