diff options
Diffstat (limited to 'source/blender/editors/interface/interface.c')
-rw-r--r-- | source/blender/editors/interface/interface.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 68dd50f54ca..2e7bfb162ae 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2491,6 +2491,25 @@ void ui_check_but(uiBut *but) /* name: */ switch (but->type) { + + case MENU: + if (BLI_rctf_size_x(&but->rect) > 24.0f) { + /* only needed for menus in popup blocks that don't recreate buttons on redraw */ + if (but->block->flag & UI_BLOCK_LOOP) { + if (but->rnaprop && (RNA_property_type(but->rnaprop) == PROP_ENUM)) { + int value = RNA_property_enum_get(&but->rnapoin, but->rnaprop); + const char *buf; + if (RNA_property_enum_name_gettexted(but->block->evil_C, + &but->rnapoin, but->rnaprop, value, &buf)) + { + BLI_strncpy(but->str, buf, sizeof(but->strdata)); + } + } + } + BLI_strncpy(but->drawstr, but->str, sizeof(but->drawstr)); + } + break; + case NUM: case NUMSLI: |