Fix T86645: Executing "Operator Cheat Sheet" Crashes Blender
The "Operator Cheat Sheet" operator collects info about all operators, and as part of that executes the callbacks to create dynamic enums. The callback to enumerate the Outliner ID operations depends on Outliner context. If this isn't available, it can just return a context-less version of the enum, that is, a static enum with all available items. This was already done in case no context is available at all.
This commit is contained in:
parent
2a4bde04c5
commit
20bf736ff8
Notes:
blender-bot
2023-02-14 08:29:54 +01:00
Referenced by issue #86645, Executing "Operator Cheat Sheet" Crashes Blender
|
@ -1854,7 +1854,7 @@ static bool outliner_id_operation_item_poll(bContext *C,
|
|||
}
|
||||
return false;
|
||||
case OUTLINER_IDOP_SINGLE:
|
||||
if (!space_outliner || ELEM(space_outliner->outlinevis, SO_SCENES, SO_VIEW_LAYER)) {
|
||||
if (ELEM(space_outliner->outlinevis, SO_SCENES, SO_VIEW_LAYER)) {
|
||||
return true;
|
||||
}
|
||||
/* TODO(dalai): enable in the few cases where this can be supported
|
||||
|
@ -1873,7 +1873,7 @@ static const EnumPropertyItem *outliner_id_operation_itemf(bContext *C,
|
|||
EnumPropertyItem *items = NULL;
|
||||
int totitem = 0;
|
||||
|
||||
if (C == NULL) {
|
||||
if ((C == NULL) || (ED_operator_outliner_active(C) == false)) {
|
||||
return prop_id_op_types;
|
||||
}
|
||||
for (const EnumPropertyItem *it = prop_id_op_types; it->identifier != NULL; it++) {
|
||||
|
|
Loading…
Reference in New Issue