Fix T55517: Property-split fails w/ expanded enum
This commit is contained in:
@@ -1488,6 +1488,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
#ifdef UI_PROP_DECORATE
|
#ifdef UI_PROP_DECORATE
|
||||||
struct {
|
struct {
|
||||||
bool use_prop_decorate;
|
bool use_prop_decorate;
|
||||||
|
int len;
|
||||||
uiLayout *layout;
|
uiLayout *layout;
|
||||||
uiBut *but;
|
uiBut *but;
|
||||||
} ui_decorate = {
|
} ui_decorate = {
|
||||||
@@ -1583,6 +1584,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
if (ui_decorate.use_prop_decorate) {
|
if (ui_decorate.use_prop_decorate) {
|
||||||
layout_row = uiLayoutRow(layout, true);
|
layout_row = uiLayoutRow(layout, true);
|
||||||
layout_row->space = 0;
|
layout_row->space = 0;
|
||||||
|
ui_decorate.len = 1;
|
||||||
}
|
}
|
||||||
#endif /* UI_PROP_DECORATE */
|
#endif /* UI_PROP_DECORATE */
|
||||||
|
|
||||||
@@ -1621,6 +1623,10 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
but->drawflag |= UI_BUT_TEXT_RIGHT;
|
but->drawflag |= UI_BUT_TEXT_RIGHT;
|
||||||
but->drawflag &= ~UI_BUT_TEXT_LEFT;
|
but->drawflag &= ~UI_BUT_TEXT_LEFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef UI_PROP_DECORATE
|
||||||
|
ui_decorate.len = len;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (name) {
|
if (name) {
|
||||||
@@ -1635,8 +1641,13 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
/* Watch out! We can only write into the new column now. */
|
/* Watch out! We can only write into the new column now. */
|
||||||
layout = uiLayoutColumn(layout_split, true);
|
layout = uiLayoutColumn(layout_split, true);
|
||||||
layout->space = 0;
|
layout->space = 0;
|
||||||
|
if ((type == PROP_ENUM) && (flag & UI_ITEM_R_EXPAND)) {
|
||||||
|
/* pass (expanded enums each have their own name) */
|
||||||
|
}
|
||||||
|
else {
|
||||||
name = "";
|
name = "";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef UI_PROP_DECORATE
|
#ifdef UI_PROP_DECORATE
|
||||||
if (ui_decorate.use_prop_decorate) {
|
if (ui_decorate.use_prop_decorate) {
|
||||||
@@ -1702,7 +1713,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
layout_col->space = 0;
|
layout_col->space = 0;
|
||||||
layout_col->emboss = UI_EMBOSS_NONE;
|
layout_col->emboss = UI_EMBOSS_NONE;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; but_decorate; i++) {
|
for (i = 0; i < ui_decorate.len && but_decorate; i++) {
|
||||||
/* The icons are set in 'ui_but_anim_flag' */
|
/* The icons are set in 'ui_but_anim_flag' */
|
||||||
if (is_anim) {
|
if (is_anim) {
|
||||||
but = uiDefIconBut(
|
but = uiDefIconBut(
|
||||||
@@ -1724,7 +1735,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
|
|||||||
BLI_insertlinkafter(&block->buttons, but_decorate, but);
|
BLI_insertlinkafter(&block->buttons, but_decorate, but);
|
||||||
but_decorate = but->next;
|
but_decorate = but->next;
|
||||||
}
|
}
|
||||||
BLI_assert(len ? (ELEM(i, 1, len)) : i == 1);
|
BLI_assert(ELEM(i, 1, ui_decorate.len));
|
||||||
}
|
}
|
||||||
#endif /* UI_PROP_DECORATE */
|
#endif /* UI_PROP_DECORATE */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user