Page MenuHome

Using "a" hotkey in nested collapsible menus only affects the parent menu
Confirmed, LowPublicBUG

Description

Blender 2.80 release

In this screenshot:

If you try to use the "a" key to expand and collapse the menus, it works fine, but not in sub menus. Seems like a bit of a design bug? Originally discussed here.

Related Objects

Event Timeline

William Reynish (billreynish) lowered the priority of this task from 90 to Low.

@Brecht Van Lommel (brecht) a small bug in sub-panels it seems. Feel free to re-assign as you wish.

We don't usually assign low priority bugs to anyone.

I have a question regarding this, about what would be the best behaviour for the end user, assuming that all sub-panels would correctly open when 'a' is pressed.

If I click 'a' on a sub-panel that is already opened, should it only close that sub-panel, or should it close the entire panel?

In my opinion as an user, if I clicked 'a' then I wanted everything to open up, or everything to close down, regardless of whether I clicked on a sub-panel or not. Currently, if I have an open panel, but a closed sub-panel, and I click 'a' on that sub-panel, its state would be toggled, but it would close the entire panel. This means the sub-panel is now open, but on a closed panel, which doesn't seem useful.

What are your opinions on this? I think I can do this task, but I don't know what should be the best solution for the user.

I've been trying to fix this for a couple of weeks on and off, and it seems like I hit a wall, and I'm having a bit of troubles uncovering how I can go about this.

I intended to minimize at the maximum the amount of code that was being called, and so I had the idea of only calling the ui_handle_panel_header function for the main menu, not the sub-menus, and cascade the collapse or opening to all the children.

However, I need the uiBlock responsible for that panel for that to happen. Unfortunately, even after "ui_handle_panel_header" the inside blocks haven't been "spawned" inside the area, so there's no way to access them.

I thought about simply invoking "panel_activate_state()", with the correct child panel, didn't work. Tried to go through all the ScreenArea in the Screen, go through all the uiBlocks, but it almost looks like they're non existent.

@Brecht Van Lommel (brecht) Can you give me a pointer at where to look at, or maybe indicate me someone who might?

Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".