From a0a536bbffaa866a504f5faa42d8605bf557729a Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Fri, 18 Sep 2020 16:39:43 -0500 Subject: Property Search: Don't set expansion for panels in inactive tabs The search should check if a panel is active before changing its expansion, otherwise it sets the expansion for all of the region's panels, even invisible ones in other tabs. --- source/blender/editors/interface/interface_panel.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender/editors/interface/interface_panel.c') diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index f57be8e5688..5800479874c 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -854,10 +854,11 @@ static void panel_set_expansion_from_seach_filter_recursive(const bContext *C, P /* If the panel is filtered (removed) we need to check that its children are too. */ LISTBASE_FOREACH (Panel *, child_panel, &panel->children) { - if (panel->type == NULL || (panel->type->flag & PNL_NO_HEADER)) { - continue; + if (panel->runtime_flag & PANEL_ACTIVE) { + if (!(panel->type->flag & PNL_NO_HEADER)) { + panel_set_expansion_from_seach_filter_recursive(C, child_panel); + } } - panel_set_expansion_from_seach_filter_recursive(C, child_panel); } } @@ -868,10 +869,11 @@ static void panel_set_expansion_from_seach_filter_recursive(const bContext *C, P void UI_panels_set_expansion_from_seach_filter(const bContext *C, ARegion *region) { LISTBASE_FOREACH (Panel *, panel, ®ion->panels) { - if (panel->type == NULL || (panel->type->flag & PNL_NO_HEADER)) { - continue; + if (panel->runtime_flag & PANEL_ACTIVE) { + if (!(panel->type->flag & PNL_NO_HEADER)) { + panel_set_expansion_from_seach_filter_recursive(C, panel); + } } - panel_set_expansion_from_seach_filter_recursive(C, panel); } } -- cgit v1.2.3