From 7874e554b6c75d56bc793f9643512a848758dd59 Mon Sep 17 00:00:00 2001 From: Justin McCandless Date: Wed, 1 Mar 2023 18:33:12 -0800 Subject: [PATCH] Enable the context menu examples on web (#1687) --- experimental/context_menus/README.md | 3 --- experimental/context_menus/lib/main.dart | 19 +++++++++++++++++++ tool/flutter_ci_script_stable.sh | 3 ++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/experimental/context_menus/README.md b/experimental/context_menus/README.md index 89ec986c5..45fe23376 100644 --- a/experimental/context_menus/README.md +++ b/experimental/context_menus/README.md @@ -10,9 +10,6 @@ such as the text selection toolbar on mobile or the right click menu on desktop. Just run `flutter run` in the same directory as this README file. -Currently, most of the examples in this demo do not support web, because Flutter -uses the browser's built-in context menu instead. - ## The examples ### [Anywhere](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/anywhere_page.dart) diff --git a/experimental/context_menus/lib/main.dart b/experimental/context_menus/lib/main.dart index 7251f52df..6ca9af6aa 100644 --- a/experimental/context_menus/lib/main.dart +++ b/experimental/context_menus/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'anywhere_page.dart'; import 'cascading_menu_page.dart'; @@ -35,6 +36,24 @@ class _MyAppState extends State { }); } + @override + void initState() { + super.initState(); + // On web, disable the browser's context menu everywhere so that the custom + // Flutter-rendered context menu shows. + if (kIsWeb) { + BrowserContextMenu.disableContextMenu(); + } + } + + @override + void dispose() { + if (kIsWeb) { + BrowserContextMenu.enableContextMenu(); + } + super.dispose(); + } + @override Widget build(BuildContext context) { return MaterialApp( diff --git a/tool/flutter_ci_script_stable.sh b/tool/flutter_ci_script_stable.sh index 9414afa4f..4414b884a 100755 --- a/tool/flutter_ci_script_stable.sh +++ b/tool/flutter_ci_script_stable.sh @@ -22,7 +22,8 @@ declare -ar PROJECT_NAMES=( "code_sharing/shared" "desktop_photo_search/fluent_ui" "desktop_photo_search/material" - "experimental/context_menus" + # TODO(DomesticMouse): uncomment on next Flutter stable increment + # "experimental/context_menus" "experimental/federated_plugin/federated_plugin" "experimental/federated_plugin/federated_plugin/example" "experimental/federated_plugin/federated_plugin_macos"