With this patch, the panel expansion is properly set based on the search results when
the active tab in the properties editor changes. The multi-tab search patch actually
doesn't handle this because it runs on a duplicated set of panels not actually displayed.
This feature uncovered a subtle but fairly significant issue with the implementation of
property search. You can mind more detail on that here, T81113, but basically, the problem
was that the search needed multiple redraws to properly display the expansion of the
panels based on the search results. Because there is no animation of panel expansion
when switching tabs, the problem was exposed only now.
The good news is that the solution actually results in a fairly nice cleanup of the
property search code. Now, the search expansion-setting, freeing of the "search only"
buttons, and panel size calculation all happen in a single place at the end of the panel
layout pass.
Removing the "search only" layout root flag means that we need another way to tell
if buttons are in a panel header. To do that, this patch adds two flags to uiButtonGroup.
The first stops the addition of new button groups so that we can use a single group
for all buttons in the header, and the second just says that the group represents a panel
header. There are two helper functions for this in interface_panel.c.