Fix T69633: weird behavior of operator_menu_enum tooltips.

For operators with dynamic tooltips the tooltip calculation is
deferred until the moment it is actually shown for performance
reasons, with the tooltip field left blank for the time being.
Enum menu code shouldn't jump in and assign a tooltip either.

The menu button itself can't show a dynamic tooltip because it
does not actually call the operator, and has no reference to it.

As a side change, allow returning None from the python callback
as the most natural way to fall back to the default tooltip.
This commit is contained in:
Alexander Gavrilov 2019-09-09 21:12:47 +03:00
parent ee9fb174f4
commit c2d37929b4
Notes: blender-bot 2023-02-14 10:37:50 +01:00
Referenced by issue #69633, New Operator Description function alters behavior of operator_menu_enums
2 changed files with 3 additions and 1 deletions

View File

@ -1110,7 +1110,8 @@ void UI_context_active_but_prop_get_filebrowser(const bContext *C,
static void ui_but_tip_from_enum_item(uiBut *but, const EnumPropertyItem *item)
{
if (but->tip == NULL || but->tip[0] == '\0') {
if (item->description && item->description[0]) {
if (item->description && item->description[0] &&
!(but->optype && but->optype->get_description)) {
but->tip = item->description;
}
}

View File

@ -963,6 +963,7 @@ void RNA_api_operator(StructRNA *srna)
RNA_def_function_ui_description(func, "Compute a description string that depends on parameters");
RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_REGISTER_OPTIONAL);
parm = RNA_def_string(func, "result", NULL, 4096, "result", "");
RNA_def_parameter_clear_flags(parm, PROP_NEVER_NULL, 0);
RNA_def_parameter_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_function_output(func, parm);
parm = RNA_def_pointer(func, "context", "Context", "", "");