Repository navigation
SelectableRegion should not show flutter rendered context menu when web context menu is enabled - #176855
Conversation
There was a problem hiding this comment.
Code Review
This pull request correctly fixes an issue where the Flutter-rendered context menu would appear on top of the native web context menu after a selection handle drag. The approach of centralizing the toolbar showing logic in _showToolbar and using a _webContextMenuEnabled getter is clean.
I've left a couple of comments: one suggestion to simplify the code by removing a now-redundant conditional block, and another pointing out a potential bug in the new handlesAreVisible getter which could cause issues with handle visibility checks.
SelectableRegion should not show flutter rendered context menu when web context menu is enabled
| _selectionOverlay != null && | ||
| (_selectionOverlay!.isDraggingStartHandle || _selectionOverlay!.isDraggingEndHandle); | ||
| if (widget.selectionControls is! TextSelectionHandleControls) { | ||
| if (!draggingHandles) { |
There was a problem hiding this comment.
Why this change, I think this may be code to handle custom context menu (although we shouldn't probably use runtimetype check to infer this)
There was a problem hiding this comment.
It ends up being the same before/after. The code to handle the context menu TextSelectionControls vs ContextMenuBuilder is in _showToolbar.
There was a problem hiding this comment.
oh I see, sounds good then. Can you add a todo in the runtitmeType check in _showToolbar to refactor that?
| _selectionOverlay != null && | ||
| (_selectionOverlay!.isDraggingStartHandle || _selectionOverlay!.isDraggingEndHandle); | ||
| if (widget.selectionControls is! TextSelectionHandleControls) { | ||
| if (!draggingHandles) { |
There was a problem hiding this comment.
oh I see, sounds good then. Can you add a todo in the runtitmeType check in _showToolbar to refactor that?
| /// Whether the native browser context menu is enabled. | ||
| bool get _webContextMenuEnabled => kIsWeb && BrowserContextMenu.enabled; |
There was a problem hiding this comment.
Ah same strategy used in EditableText. More evidence that having two separate implementations of text selection leads to bugs.
|
autosubmit label was removed for flutter/flutter/176855, because - The status or check suite Mac_arm64 build_tests_3_4 has failed. Please fix the issues identified (or deflake) before re-applying this label.
|
…electionOverlay to prevent double context menus
… is fully removed
…enu when web context menu is enabled (flutter/flutter#176855)
…enu when web context menu is enabled (flutter/flutter#176855)
…enu when web context menu is enabled (flutter/flutter#176855)
…enu when web context menu is enabled (flutter/flutter#176855)
…enu when web context menu is enabled (flutter/flutter#176855)
Manual roll requested by tarrinneal@google.com flutter/flutter@7cd821c...a873a27 2025-10-16 30870216+gaaclarke@users.noreply.github.com [tool] makes listing a shader also as an asset a build failure (flutter/flutter#176866) 2025-10-16 engine-flutter-autoroll@skia.org Roll Packages from d062181 to 835dccb (7 revisions) (flutter/flutter#177100) 2025-10-16 jason-simmons@users.noreply.github.com Handle the new location of Perfetto in create_updated_flutter_deps.py (flutter/flutter#177099) 2025-10-16 matt.kosarek@canonical.com Implement dialog windows for the win32 platform (flutter/flutter#176309) 2025-10-16 rmolivares@renzo-olivares.dev `SelectableRegion` should not show flutter rendered context menu when web context menu is enabled (flutter/flutter#176855) 2025-10-16 jason-simmons@users.noreply.github.com Manual roll Skia to 2d9df7c70b6f (flutter/flutter#177074) 2025-10-16 31685655+SalehTZ@users.noreply.github.com feat: add `OptionsViewOpenDirection.mostSpace` to `RawAutocomplete` (flutter/flutter#172997) 2025-10-16 43054281+camsim99@users.noreply.github.com [Android] Refactor `ImageReaderSurfaceProducer` restoration after app resumes (flutter/flutter#175937) 2025-10-15 34465683+rkishan516@users.noreply.github.com Refactor: migrate fade upwards page transition builder to widgets (flutter/flutter#175560) 2025-10-15 fluttergithubbot@gmail.com Marks Windows windowing_test to be unflaky (flutter/flutter#176701) 2025-10-15 72062416+Yash-Dhrangdhariya@users.noreply.github.com fix: 🐛 Add equality and hashCode implementations to ScrollAwareImageProvider (flutter/flutter#175038) 2025-10-15 mohellebiabdessalem@gmail.com Updates `sliver_tree.1.dart` to use `MediaQuery.widthOf(context)` (flutter/flutter#176888) 2025-10-15 mdebbar@google.com [web] Fix focus issues in newer versions of Chrome (flutter/flutter#176938) 2025-10-15 jessiewong401@gmail.com [Android 16] Update `android_engine_vulkan_tests` to Test Against SDK 36 Emulator (flutter/flutter#176985) 2025-10-15 sokolovskyi.konstantin@gmail.com Fix key events interception by RadioGroup when no Radio is focused. (flutter/flutter#176335) 2025-10-15 21270878+elliette@users.noreply.github.com Update cherry-pick instructions to include instructions for pre-release CPs (flutter/flutter#177020) 2025-10-15 jason-simmons@users.noreply.github.com Manual roll Skia to c501c727a007 (flutter/flutter#177015) 2025-10-15 robert.ancell@canonical.com Update examples to latest Linux runner style (flutter/flutter#177033) 2025-10-15 59215665+davidhicks980@users.noreply.github.com [material/menu_anchor.dart] Create internal menu controller if external controller is changed to null. (flutter/flutter#176375) 2025-10-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix - TalkBack does not announce list information (#174374)" (flutter/flutter#177062) 2025-10-14 robert.ancell@canonical.com Implement Regular Windows for Linux (flutter/flutter#176187) 2025-10-14 31510811+jwlilly@users.noreply.github.com Fix - TalkBack does not announce list information (flutter/flutter#174374) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
… web context menu is enabled (flutter#176855) This change fixes an issue where the flutter rendered menu would show up when ending a drag on a selection handle, even when the web context menu was enabled. This led to issues where both context menus would show up leading to a unfavorable experience. Fixes flutter#175114 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Renzo Olivares <roliv@google.com>
…enu when web context menu is enabled (flutter/flutter#176855)
…0244) Manual roll requested by tarrinneal@google.com flutter/flutter@7cd821c...a873a27 2025-10-16 30870216+gaaclarke@users.noreply.github.com [tool] makes listing a shader also as an asset a build failure (flutter/flutter#176866) 2025-10-16 engine-flutter-autoroll@skia.org Roll Packages from d062181 to 835dccb (7 revisions) (flutter/flutter#177100) 2025-10-16 jason-simmons@users.noreply.github.com Handle the new location of Perfetto in create_updated_flutter_deps.py (flutter/flutter#177099) 2025-10-16 matt.kosarek@canonical.com Implement dialog windows for the win32 platform (flutter/flutter#176309) 2025-10-16 rmolivares@renzo-olivares.dev `SelectableRegion` should not show flutter rendered context menu when web context menu is enabled (flutter/flutter#176855) 2025-10-16 jason-simmons@users.noreply.github.com Manual roll Skia to 2d9df7c70b6f (flutter/flutter#177074) 2025-10-16 31685655+SalehTZ@users.noreply.github.com feat: add `OptionsViewOpenDirection.mostSpace` to `RawAutocomplete` (flutter/flutter#172997) 2025-10-16 43054281+camsim99@users.noreply.github.com [Android] Refactor `ImageReaderSurfaceProducer` restoration after app resumes (flutter/flutter#175937) 2025-10-15 34465683+rkishan516@users.noreply.github.com Refactor: migrate fade upwards page transition builder to widgets (flutter/flutter#175560) 2025-10-15 fluttergithubbot@gmail.com Marks Windows windowing_test to be unflaky (flutter/flutter#176701) 2025-10-15 72062416+Yash-Dhrangdhariya@users.noreply.github.com fix: 🐛 Add equality and hashCode implementations to ScrollAwareImageProvider (flutter/flutter#175038) 2025-10-15 mohellebiabdessalem@gmail.com Updates `sliver_tree.1.dart` to use `MediaQuery.widthOf(context)` (flutter/flutter#176888) 2025-10-15 mdebbar@google.com [web] Fix focus issues in newer versions of Chrome (flutter/flutter#176938) 2025-10-15 jessiewong401@gmail.com [Android 16] Update `android_engine_vulkan_tests` to Test Against SDK 36 Emulator (flutter/flutter#176985) 2025-10-15 sokolovskyi.konstantin@gmail.com Fix key events interception by RadioGroup when no Radio is focused. (flutter/flutter#176335) 2025-10-15 21270878+elliette@users.noreply.github.com Update cherry-pick instructions to include instructions for pre-release CPs (flutter/flutter#177020) 2025-10-15 jason-simmons@users.noreply.github.com Manual roll Skia to c501c727a007 (flutter/flutter#177015) 2025-10-15 robert.ancell@canonical.com Update examples to latest Linux runner style (flutter/flutter#177033) 2025-10-15 59215665+davidhicks980@users.noreply.github.com [material/menu_anchor.dart] Create internal menu controller if external controller is changed to null. (flutter/flutter#176375) 2025-10-15 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix - TalkBack does not announce list information (#174374)" (flutter/flutter#177062) 2025-10-14 robert.ancell@canonical.com Implement Regular Windows for Linux (flutter/flutter#176187) 2025-10-14 31510811+jwlilly@users.noreply.github.com Fix - TalkBack does not announce list information (flutter/flutter#174374) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This change fixes an issue where the flutter rendered menu would show up when ending a drag on a selection handle, even when the web context menu was enabled. This led to issues where both context menus would show up leading to a unfavorable experience.
Fixes #175114
Pre-launch Checklist
///).