Page MenuHome

Avoid Dynamic Menu Contents
Confirmed, NormalPublicDESIGN


This tasks proposes that dynamic menu contend could not be used (with some exceptions, below).

Examples of dynamic menu content are menu items that are shown or not based on the number of selected items, an operators poll function, or the saved state of the blend file.

This causes the following problems:

  • Causes User Uncertainty

    When you remember a menu item being available and find it missing, it's not obvious whats happening.

    If the menu item is greyed out, it makes it obvious the functionality exists but isn't available.

    Note that Blender has the ability to set a message for why an operator is disabled which is displayed in the tool-tip (this should be used more often).
  • Complicates Documentation

    When instructions give steps to perform an action, a user may find the menu item missing, and think they're using the wrong version or the instructions require and add-on or some other customization.
  • Changes Key Accelerators

    When menu items change are added/removed, the short-cut keys to activate an item will change too, so a user can't use muscle memory to activate a menu item.
  • Complicates Menu Memory

    Currently popup menus remember the last action based on the text, with dynamic changing text, our menu hashing function ui_popup_menu_memory would need to somehow support this too, at least if this is used for menu items in popup menus.

    Note that even in the case this was solved for updated display-text, moving menu items around has inherent problems with remembering the last used action.
  • Context Menu.
  • Quick Favorites Menu.
  • Menu's that Expand Data such as "Open Recent" or Add "Collection Instances"

Related Objects

ArchivedDESIGNWilliam Reynish (billreynish)

Event Timeline

Campbell Barton (campbellbarton) changed the task status from Needs Triage to Confirmed.Apr 29 2020, 6:26 AM

The obvious exceptions are the context menus and the user-defined Quick Favorites.

Julian Eisel (Severin) changed the subtype of this task from "Report" to "Design".May 18 2020, 4:59 PM