Skip to content

☂️ Menu bars and cascading menus #23600

@gspencergoog

Description

@gspencergoog

For some embeddings (macOS, Windows, Linux, ChromeOS, Fuschia), an application-level menu bar widget is necessary. It should be able to display keyboard accelerators, menu item separators, and have cascading menus.

The design doc is here: https://flutter.dev/go/cascading-menus
The draft Framework PR is here: #109179
The draft Engine PR is here: flutter/engine#31124
This PR is part of the overall effort to support Material 3 - #91605

The current burndown list for implementing the Material menu bar:

  • Basic prototype, menus can be defined, open and close.
  • Design doc update
  • Convert overlay usage into regular Stack
  • Figure out how to add all menus offstage initially to allow activator registration.
  • Hover support
  • Activator support
  • Keyboard navigation support
  • RTL support
  • Visual Density support
  • Platform system menu plugin support for macOS
  • Platform default menu item support (basic)
  • Screen placement and scrolling on small windows.
  • Confirm semantics support (with tests) for cascading menus and menubars #127617
  • unit tests x1000
  • API docs update
  • Final formatting pass
  • Add examples and example tests
  • Connect activators and keyboard support with Shortcuts and Actions?

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: desktopRunning on desktopc: new featureNothing broken; request for a new capabilitycustomer: fuchsiaf: material designflutter/packages/flutter/material repository.frameworkflutter/packages/flutter repository. See also f: labels.platform-chromebookChromebook applications specifically

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions