diff options
author | Hans Goudey <h.goudey@me.com> | 2020-10-06 00:23:21 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2020-10-06 00:23:21 +0300 |
commit | 3178dc25f6edc95d6de49ab2894303aedc0a23b3 (patch) | |
tree | 1e96bc7bc3f71cfa746a9a6686b036d19fb16798 /source/blender/editors/interface/interface_panel.c | |
parent | 7951312d4b5c99e97155b0ea02b5b1b21cdf6de8 (diff) |
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.
Diffstat (limited to 'source/blender/editors/interface/interface_panel.c')
-rw-r--r-- | source/blender/editors/interface/interface_panel.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index f50975760f1..a68cfd53a26 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -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) |