Fix T81470: Buttons in closed panel visible during search

The buttons hide when the search finishes based on whether they are in
the "panel header" group. These buttons were not protected with a new
group. This adds a new group for operator button calls, and also makes
it so a new group is always created after the header buttons.
This commit is contained in:
Hans Goudey 2020-10-05 16:23:21 -05:00
parent 7951312d4b
commit 3178dc25f6
Notes: blender-bot 2023-02-14 00:37:17 +01:00
Referenced by issue #81470, Property Search: Buttons in closed panel sometimes visible during
2 changed files with 9 additions and 3 deletions

View File

@ -1163,8 +1163,8 @@ static uiBut *uiItemFullO_ptr_ex(uiLayout *layout,
icon = ICON_BLANK1;
}
/* create button */
UI_block_layout_set_current(block, layout);
ui_block_new_button_group(block, 0);
const int w = ui_text_icon_width(layout, name, icon, 0);

View File

@ -770,6 +770,8 @@ void UI_panel_header_buttons_end(Panel *panel)
uiButtonGroup *button_group = block->button_groups.last;
button_group->flag &= ~UI_BUTTON_GROUP_LOCK;
/* Repurpose the first "header" button group if it is empty, in case the first button added to
* the panel doesn't add a new group (if the button is created directly rather than through an
* interface layout call). */
@ -777,8 +779,12 @@ void UI_panel_header_buttons_end(Panel *panel)
BLI_listbase_is_empty(&button_group->buttons)) {
button_group->flag &= ~UI_BUTTON_GROUP_PANEL_HEADER;
}
button_group->flag &= ~UI_BUTTON_GROUP_LOCK;
else {
/* We should still always add a new button group. Although this results in many empty groups,
* without it, new buttons not protected with a #ui_block_new_button_group call would end up
* in the panel header group. */
ui_block_new_button_group(block, 0);
}
}
static float panel_region_offset_x_get(const ARegion *region)