Merge branch 'blender-v2.90-release'

This commit is contained in:
Julian Eisel 2020-08-05 16:56:59 +02:00
commit 055af3a489
1 changed files with 15 additions and 12 deletions

View File

@ -937,7 +937,7 @@ static uiBut *ui_item_with_label(uiLayout *layout,
int h,
int flag)
{
uiLayout *sub;
uiLayout *sub = layout;
uiBut *but = NULL;
PropertyType type;
PropertySubType subtype;
@ -945,14 +945,20 @@ static uiBut *ui_item_with_label(uiLayout *layout,
#ifdef UI_PROP_DECORATE
uiLayout *layout_prop_decorate = NULL;
const bool use_prop_sep = ((layout->item.flag & UI_ITEM_PROP_SEP) != 0);
const bool use_prop_decorate = use_prop_sep && (layout->item.flag & UI_ITEM_PROP_DECORATE) &&
(layout->item.flag & UI_ITEM_PROP_DECORATE_NO_PAD) == 0;
#endif
/* Previously 'align' was enabled to make sure the label is spaced closely to the button.
* Set the space to zero instead as aligning a large number of labels can end up aligning
* thousands of buttons when displaying key-map search (a heavy operation), see: T78636. */
sub = uiLayoutRow(layout, false);
sub->space = 0;
UI_block_layout_set_current(block, sub);
UI_block_layout_set_current(block, layout);
/* Only add new row if more than 1 item will be added. */
if (name[0] || use_prop_decorate) {
/* Also avoid setting 'align' if possible. Set the space to zero instead as aligning a large
* number of labels can end up aligning thousands of buttons when displaying key-map search (a
* heavy operation), see: T78636. */
sub = uiLayoutRow(layout, layout->align);
sub->space = 0;
}
#ifdef UI_PROP_DECORATE
if (name[0]) {
@ -1050,11 +1056,8 @@ static uiBut *ui_item_with_label(uiLayout *layout,
#ifdef UI_PROP_DECORATE
/* Only for alignment. */
if (use_prop_sep) { /* Flag may have been unset meanwhile. */
if ((layout->item.flag & UI_ITEM_PROP_DECORATE) &&
(layout->item.flag & UI_ITEM_PROP_DECORATE_NO_PAD) == 0) {
uiItemL(layout_prop_decorate ? layout_prop_decorate : sub, NULL, ICON_BLANK1);
}
if (use_prop_decorate) { /* Note that sep flag may have been unset meanwhile. */
uiItemL(layout_prop_decorate ? layout_prop_decorate : sub, NULL, ICON_BLANK1);
}
#endif /* UI_PROP_DECORATE */