Fix Label colors in popups
This commit is contained in:
parent
3e8b2288f5
commit
ec22809025
Notes:
blender-bot
2023-02-14 07:57:19 +01:00
Referenced by issue #52250, Glitch in UI in the addon panel regression Referenced by issue #48241, Bad contrast in box() layout within Popup Windows
|
@ -212,6 +212,8 @@ enum {
|
|||
UI_BUT_ALIGN_STITCH_TOP = (1 << 18),
|
||||
UI_BUT_ALIGN_STITCH_LEFT = (1 << 19),
|
||||
UI_BUT_ALIGN_ALL = (UI_BUT_ALIGN | UI_BUT_ALIGN_STITCH_TOP | UI_BUT_ALIGN_STITCH_LEFT),
|
||||
|
||||
UI_BUT_BOX_ITEM = (1 << 20), /* This but is "inside" a box item (currently used to change theme colors). */
|
||||
};
|
||||
|
||||
/* scale fixed button widths by this to account for DPI */
|
||||
|
|
|
@ -128,6 +128,8 @@ typedef struct uiItem {
|
|||
enum {
|
||||
UI_ITEM_FIXED = 1 << 0,
|
||||
UI_ITEM_MIN = 1 << 1,
|
||||
|
||||
UI_ITEM_BOX_ITEM = 1 << 2, /* The item is "inside" a box item */
|
||||
};
|
||||
|
||||
typedef struct uiButtonItem {
|
||||
|
@ -2306,6 +2308,9 @@ static void ui_litem_layout_column(uiLayout *litem, bool is_box)
|
|||
|
||||
if (item->next && (!is_box || item != litem->items.first))
|
||||
y -= litem->space;
|
||||
|
||||
if (is_box)
|
||||
item->flag |= UI_ITEM_BOX_ITEM;
|
||||
}
|
||||
|
||||
litem->h = litem->y - y;
|
||||
|
@ -3266,8 +3271,16 @@ static void ui_item_layout(uiItem *item)
|
|||
break;
|
||||
}
|
||||
|
||||
for (subitem = litem->items.first; subitem; subitem = subitem->next)
|
||||
for (subitem = litem->items.first; subitem; subitem = subitem->next) {
|
||||
if (item->flag & UI_ITEM_BOX_ITEM)
|
||||
subitem->flag |= UI_ITEM_BOX_ITEM;
|
||||
ui_item_layout(subitem);
|
||||
}
|
||||
} else {
|
||||
if (item->flag & UI_ITEM_BOX_ITEM) {
|
||||
uiButtonItem *bitem = (uiButtonItem *)item;
|
||||
bitem->but->drawflag |= UI_BUT_BOX_ITEM;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3655,11 +3655,15 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
|
|||
|
||||
switch (but->type) {
|
||||
case UI_BTYPE_LABEL:
|
||||
if (but->block->flag & UI_BLOCK_LOOP)
|
||||
widget_draw_text_icon(&style->widgetlabel, &tui->wcol_menu_back, but, rect);
|
||||
else {
|
||||
wt = widget_type(UI_WTYPE_LABEL);
|
||||
fstyle = &style->widgetlabel;
|
||||
wt = widget_type(UI_WTYPE_LABEL);
|
||||
fstyle = &style->widgetlabel;
|
||||
if (but->drawflag & UI_BUT_BOX_ITEM) {
|
||||
wt->wcol_theme = &tui->wcol_box;
|
||||
wt->state = widget_state;
|
||||
}
|
||||
else if (but->block->flag & UI_BLOCK_LOOP) {
|
||||
wt->wcol_theme = &tui->wcol_menu_back;
|
||||
wt->state = widget_state;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue