[Bf-blender-cvs] [c914bff16d6] property-search-ui: Property Search: Fix panels occasionally overlapping
Hans Goudey
noreply at git.blender.org
Wed Jul 8 19:57:06 CEST 2020
Commit: c914bff16d6578dcbe68cfada31b439f6eb1f878
Author: Hans Goudey
Date: Wed Jul 8 13:56:55 2020 -0400
Branches: property-search-ui
https://developer.blender.org/rBc914bff16d6578dcbe68cfada31b439f6eb1f878
Property Search: Fix panels occasionally overlapping
===================================================================
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 140a602e207..73ae32e59aa 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -816,7 +816,7 @@ void UI_panel_end(
/* Compute total panel size including children. */
LISTBASE_FOREACH (Panel *, pachild, &panel->children) {
- if (pachild->runtime_flag & PNL_ACTIVE && !(pachild->runtime_flag & PNL_SEARCH_FILTERED)) {
+ if (pachild->runtime_flag & PNL_ACTIVE && !UI_panel_is_search_filtered(pachild)) {
width = max_ii(width, pachild->sizex);
height += get_panel_real_size_y(pachild);
}
@@ -878,18 +878,16 @@ void ui_panel_set_search_filtered(struct Panel *panel, const bool value)
SET_FLAG_FROM_TEST(panel->runtime_flag, value, PNL_SEARCH_FILTERED);
}
-static bool panel_is_search_filtered_recursive(const Panel *panel)
+static void panel_is_search_filtered_recursive(const Panel *panel, bool *is_search_filtered)
{
- bool is_search_filtered = panel->runtime_flag & PNL_SEARCH_FILTERED;
+ *is_search_filtered = *is_search_filtered && (panel->runtime_flag & PNL_SEARCH_FILTERED);
/* If the panel is filtered (removed) we need to check that its children are too. */
- if (is_search_filtered) {
+ if (*is_search_filtered) {
LISTBASE_FOREACH (const Panel *, child_panel, &panel->children) {
- is_search_filtered &= panel_is_search_filtered_recursive(child_panel);
+ panel_is_search_filtered_recursive(child_panel, is_search_filtered);
}
}
-
- return is_search_filtered;
}
/**
@@ -901,7 +899,9 @@ static bool panel_is_search_filtered_recursive(const Panel *panel)
*/
bool UI_panel_is_search_filtered(const Panel *panel)
{
- return panel_is_search_filtered_recursive(panel);
+ bool is_search_filtered = true;
+ panel_is_search_filtered_recursive(panel, &is_search_filtered);
+ return is_search_filtered;
}
/**************************** drawing *******************************/
More information about the Bf-blender-cvs
mailing list