[Bf-blender-cvs] [a0a536bbffa] master: Property Search: Don't set expansion for panels in inactive tabs

Hans Goudey noreply at git.blender.org
Fri Sep 18 23:39:53 CEST 2020


Commit: a0a536bbffaa866a504f5faa42d8605bf557729a
Author: Hans Goudey
Date:   Fri Sep 18 16:39:43 2020 -0500
Branches: master
https://developer.blender.org/rBa0a536bbffaa866a504f5faa42d8605bf557729a

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.

===================================================================

M	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, &region->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);
   }
 }



More information about the Bf-blender-cvs mailing list