Merge branch 'blender-v2.90-release' into master

This commit is contained in:
Bastien Montagne 2020-08-12 11:13:10 +02:00
commit 05cb4cf26e
3 changed files with 20 additions and 15 deletions

View File

@ -412,28 +412,30 @@ void OBJECT_OT_gpencil_modifier_add(wmOperatorType *ot)
/********** generic functions for operators using mod names and data context *********************/
static int gpencil_edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag)
static bool gpencil_edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag)
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", rna_type);
Object *ob = (ptr.owner_id) ? (Object *)ptr.owner_id : ED_object_active_context(C);
GpencilModifierData *mod = ptr.data; /* May be NULL. */
if (!ob || ID_IS_LINKED(ob)) {
return 0;
return false;
}
if (obtype_flag && ((1 << ob->type) & obtype_flag) == 0) {
return 0;
return false;
}
if (ptr.owner_id && ID_IS_LINKED(ptr.owner_id)) {
return 0;
return false;
}
if (ID_IS_OVERRIDE_LIBRARY(ob)) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
return (((GpencilModifierData *)ptr.data)->flag &
eGpencilModifierFlag_OverrideLibrary_Local) != 0;
if ((mod == NULL) || (mod->flag & eGpencilModifierFlag_OverrideLibrary_Local) == 0) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
return false;
}
}
return 1;
return true;
}
static bool gpencil_edit_modifier_poll(bContext *C)

View File

@ -1022,7 +1022,7 @@ bool edit_modifier_poll_generic(bContext *C,
}
if (ID_IS_OVERRIDE_LIBRARY(ob)) {
if ((mod != NULL) && (mod->flag & eModifierFlag_OverrideLibrary_Local) == 0) {
if ((mod == NULL) || (mod->flag & eModifierFlag_OverrideLibrary_Local) == 0) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
return false;
}

View File

@ -332,23 +332,26 @@ static bool edit_shaderfx_poll_generic(bContext *C, StructRNA *rna_type, int obt
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "shaderfx", rna_type);
Object *ob = (ptr.owner_id) ? (Object *)ptr.owner_id : ED_object_active_context(C);
ShaderFxData *fx = ptr.data; /* May be NULL. */
if (!ob || ID_IS_LINKED(ob)) {
return 0;
return false;
}
if (obtype_flag && ((1 << ob->type) & obtype_flag) == 0) {
return 0;
return false;
}
if (ptr.owner_id && ID_IS_LINKED(ptr.owner_id)) {
return 0;
return false;
}
if (ID_IS_OVERRIDE_LIBRARY(ob)) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit shaderfxs coming from library override");
return (((ShaderFxData *)ptr.data)->flag & eShaderFxFlag_OverrideLibrary_Local) != 0;
if ((fx == NULL) || (fx->flag & eShaderFxFlag_OverrideLibrary_Local) == 0) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit shaderfxs coming from library override");
return false;
}
}
return 1;
return true;
}
static bool edit_shaderfx_poll(bContext *C)