@@ -2201,6 +2201,58 @@ void main() {
22012201      skip:  kIsWeb &&  ! isCanvasKit, // https://github.com/flutter/flutter/issues/145527 
22022202    );
22032203
2204+     // Regression test for https://github.com/flutter/flutter/issues/145040. 
2205+     testWidgets ('CharacterActivator shortcut mnemonics include modifiers' , (WidgetTester  tester) async  {
2206+       await  tester.pumpWidget (
2207+         MaterialApp (
2208+           home:  Material (
2209+             child:  MenuBar (
2210+               controller:  controller,
2211+               children:  createTestMenus (
2212+                 shortcuts:  < TestMenu , MenuSerializableShortcut > {
2213+                   TestMenu .subSubMenu110:  const  CharacterActivator ('A' , control:  true ),
2214+                   TestMenu .subSubMenu111:  const  CharacterActivator ('B' , alt:  true ),
2215+                   TestMenu .subSubMenu112:  const  CharacterActivator ('C' , meta:  true ),
2216+                 },
2217+               ),
2218+             ),
2219+           ),
2220+         ),
2221+       );
2222+ 
2223+       // Open a menu initially. 
2224+       await  tester.tap (find.text (TestMenu .mainMenu1.label));
2225+       await  tester.pump ();
2226+ 
2227+       await  tester.tap (find.text (TestMenu .subMenu11.label));
2228+       await  tester.pump ();
2229+ 
2230+       final  Text  mnemonic0 =  tester.widget (findMnemonic (TestMenu .subSubMenu110.label));
2231+       final  Text  mnemonic1 =  tester.widget (findMnemonic (TestMenu .subSubMenu111.label));
2232+       final  Text  mnemonic2 =  tester.widget (findMnemonic (TestMenu .subSubMenu112.label));
2233+ 
2234+       switch  (defaultTargetPlatform) {
2235+         case  TargetPlatform .android: 
2236+         case  TargetPlatform .fuchsia: 
2237+         case  TargetPlatform .linux: 
2238+           expect (mnemonic0.data, equals ('Ctrl+A' ));
2239+           expect (mnemonic1.data, equals ('Alt+B' ));
2240+           expect (mnemonic2.data, equals ('Meta+C' ));
2241+         case  TargetPlatform .windows: 
2242+           expect (mnemonic0.data, equals ('Ctrl+A' ));
2243+           expect (mnemonic1.data, equals ('Alt+B' ));
2244+           expect (mnemonic2.data, equals ('Win+C' ));
2245+         case  TargetPlatform .iOS: 
2246+         case  TargetPlatform .macOS: 
2247+           expect (mnemonic0.data, equals ('⌃ A' ));
2248+           expect (mnemonic1.data, equals ('⌥ B' ));
2249+           expect (mnemonic2.data, equals ('⌘ C' ));
2250+       }
2251+     },
2252+       variant:  TargetPlatformVariant .all (),
2253+       skip:  kIsWeb &&  ! isCanvasKit, // https://github.com/flutter/flutter/issues/145527 
2254+     );
2255+ 
22042256    testWidgets ('leadingIcon is used when set' , (WidgetTester  tester) async  {
22052257      await  tester.pumpWidget (
22062258        MaterialApp (
0 commit comments