Fix popup menu memory activating labels when names matched menu items

When labels in popups (typically headings) matched the name of a button,
the label would be activated instead of the button.

This caused the unwrap menu in the UV editor not to re-select "Unwrap"
when opening a second time.
This commit is contained in:
Campbell Barton 2022-05-20 16:36:39 +10:00
parent f68fb81064
commit d27f4e8493
1 changed files with 6 additions and 0 deletions

View File

@ -129,6 +129,12 @@ static uiBut *ui_popup_menu_memory__internal(uiBlock *block, uiBut *but)
/* get */
LISTBASE_FOREACH (uiBut *, but_iter, &block->buttons) {
/* Prevent labels (typically headings), from being returned in the case the text
* happens to matches one of the menu items.
* Skip separators too as checking them is redundant. */
if (ELEM(but_iter->type, UI_BTYPE_LABEL, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE)) {
continue;
}
if (mem[hash_mod] ==
ui_popup_string_hash(but_iter->str, but_iter->flag & UI_BUT_HAS_SEP_CHAR)) {
return but_iter;