diff options
author | raa <roaoao@gmail.com> | 2017-03-28 00:07:31 +0300 |
---|---|---|
committer | raa <roaoao@gmail.com> | 2017-03-28 00:07:31 +0300 |
commit | 5ce120b865edf3ac83f73e96e0090b90d5e5c205 (patch) | |
tree | 31a544c70c7915f5e04c879aa93f367460fa3539 | |
parent | 6a5e92c0222bddae71ec786f40c5c8618df4aae4 (diff) |
Fix columns with fixed width
-rw-r--r-- | source/blender/editors/interface/interface_layout.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index bb789f91e76..7b0921941e7 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -2266,6 +2266,7 @@ static void ui_litem_estimate_column(uiLayout *litem, bool is_box) { uiItem *item; int itemw, itemh; + bool min_size_flag = true; litem->w = 0; litem->h = 0; @@ -2273,12 +2274,18 @@ static void ui_litem_estimate_column(uiLayout *litem, bool is_box) for (item = litem->items.first; item; item = item->next) { ui_item_size(item, &itemw, &itemh); + min_size_flag = min_size_flag && (item->flag & UI_ITEM_MIN); + litem->w = MAX2(litem->w, itemw); litem->h += itemh; if (item->next && (!is_box || item != litem->items.first)) litem->h += litem->space; } + + if (min_size_flag) { + litem->item.flag |= UI_ITEM_MIN; + } } static void ui_litem_layout_column(uiLayout *litem, bool is_box) @@ -2446,6 +2453,7 @@ static void ui_litem_estimate_box(uiLayout *litem) uiStyle *style = litem->root->style; ui_litem_estimate_column(litem, true); + litem->item.flag &= ~UI_ITEM_MIN; litem->w += 2 * style->boxspace; litem->h += 2 * style->boxspace; } |