[Bf-blender-cvs] [feb588060a] master: Fix T50497: prop_search not correctly drew in UI (D2473)

raa noreply at git.blender.org
Thu Feb 2 15:38:31 CET 2017


Commit: feb588060a6c33c42b3bbf4a5c15283644a342f9
Author: raa
Date:   Thu Feb 2 17:30:50 2017 +0300
Branches: master
https://developer.blender.org/rBfeb588060a6c33c42b3bbf4a5c15283644a342f9

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

===================================================================

M	source/blender/editors/interface/interface_layout.c

===================================================================

diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 7262b453e0..ca2538022b 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -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) {




More information about the Bf-blender-cvs mailing list