Fix T50497: prop_search not correctly drew in UI (D2473)

This commit is contained in:
Aleksandr Zinovev 2017-02-02 17:30:50 +03:00
parent 86747ff180
commit feb588060a
Notes: blender-bot 2023-02-14 07:16:34 +01:00
Referenced by issue #50497, Python : prop_search not correctly drew in UI
1 changed files with 10 additions and 18 deletions

View File

@ -2078,15 +2078,7 @@ static void ui_litem_estimate_row(uiLayout *litem)
for (item = litem->items.first; item; item = item->next) {
ui_item_size(item, &itemw, &itemh);
if (item->type == ITEM_BUTTON) {
const uiBut *but = ((uiButtonItem *)item)->but;
const bool icon_only = (but->flag & UI_HAS_ICON) && (but->str == NULL || but->str[0] == '\0');
min_size_flag = min_size_flag && icon_only;
}
else {
min_size_flag = min_size_flag && (item->flag & UI_ITEM_MIN);
}
min_size_flag = min_size_flag && (item->flag & UI_ITEM_MIN);
litem->w += itemw;
litem->h = MAX2(itemh, litem->h);
@ -2232,15 +2224,7 @@ static void ui_litem_estimate_column(uiLayout *litem)
for (item = litem->items.first; item; item = item->next) {
ui_item_size(item, &itemw, &itemh);
if (item->type == ITEM_BUTTON) {
const uiBut *but = ((uiButtonItem *)item)->but;
const bool icon_only = (but->flag & UI_HAS_ICON) && (but->str == NULL || but->str[0] == '\0');
min_size_flag = min_size_flag && icon_only;
}
else {
min_size_flag = min_size_flag && (item->flag & UI_ITEM_MIN);
}
min_size_flag = min_size_flag && (item->flag & UI_ITEM_MIN);
litem->w = MAX2(litem->w, itemw);
litem->h += itemh;
@ -3336,6 +3320,14 @@ void ui_layout_add_but(uiLayout *layout, uiBut *but)
bitem = MEM_callocN(sizeof(uiButtonItem), "uiButtonItem");
bitem->item.type = ITEM_BUTTON;
bitem->but = but;
int w, h;
ui_item_size((uiItem *)bitem, &w, &h);
/* XXX uiBut hasn't scaled yet
* we can flag the button as not expandable, depending on its size */
if (w <= 2 * UI_UNIT_X)
bitem->item.flag |= UI_ITEM_MIN;
BLI_addtail(&layout->items, bitem);
if (layout->context) {