godotengine / godotengine/godot

Horrible MenuButton UX

Open
#111,985 5 comments 5 reactions 0 assignees View on GitHub
discussion enhancement topic:gui usability
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

4.5 Stable and prior (tested all the way to 3.3)

### System information

N/A

### Issue description

The `MenuButton` Node is a Hot mess.

1) Items that are Checkable when you click to check them they Don't get checked. You have to provide your own Logic to do so. This is unintuitive and undesirable. What Else could you possibly do with a Check Button other then (Un)Checking it!? To add insult to Injury you cannot setup the signals from the editor (which also mind you further Obfuscates the solution), you need to do so Manually through the `connect` function, in code.
2) The Popup auto-closes on Left Mouse Button regardless of where it is clicked. This is not always desired, as you may have multiple options you want to Check/Uncheck, and the way to Prevent this is Heavily Obscured (you need to do a `menubutton.get_popup().hide_on_checkable_item_selection=false` with no setting in the Editor allowing you to change this behavior
3) The editor makes it seem like Items are part of the MenuButton, but instead you need to do `get_popup().SOME-ITEM-COMMAND` instead of `menubutton.SOME-ITEM-COMMAND` as they're actually the Popup's Variables

### Steps to reproduce

N/A

### Minimal reproduction project (MRP)

N/A

Contributor guide

Open the contributing guide

Research direction

Start with the MenuButton and get_popup() entry points described in the issue, and reproduce the checkable-item and popup-closing behavior in Godot 4.5 or a current build. Clarify which behavior and editor configuration are intended before identifying the affected implementation and tests; done requires an agreed, consistent MenuButton UX.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
design, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.