forked from bartvdbraak/blender
Interface / Modifiers: Don't show cage placeholder in modifier header, if the current modifier does not support it or the cage is disabled (like Subsurf 0).
This way we save some space but still avoid the jumping around while changing settings in the header itself. Thanks to Brecht for help on this. :)
This commit is contained in:
parent
1e045a2417
commit
f372758257
@ -321,6 +321,7 @@ void modifier_unique_name(struct ListBase *modifiers, struct ModifierDa
|
||||
void modifier_copyData(struct ModifierData *md, struct ModifierData *target);
|
||||
bool modifier_dependsOnTime(struct ModifierData *md);
|
||||
bool modifier_supportsMapping(struct ModifierData *md);
|
||||
bool modifier_supportsCage(struct Scene *scene, struct ModifierData *md);
|
||||
bool modifier_couldBeCage(struct Scene *scene, struct ModifierData *md);
|
||||
bool modifier_isCorrectableDeformed(struct ModifierData *md);
|
||||
bool modifier_isSameTopology(ModifierData *md);
|
||||
|
@ -263,6 +263,18 @@ void modifier_copyData(ModifierData *md, ModifierData *target)
|
||||
mti->copyData(md, target);
|
||||
}
|
||||
|
||||
|
||||
bool modifier_supportsCage(struct Scene *scene, ModifierData *md)
|
||||
{
|
||||
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
|
||||
|
||||
md->scene = scene;
|
||||
|
||||
return ((!mti->isDisabled || !mti->isDisabled(md, 0)) &&
|
||||
(mti->flags & eModifierTypeFlag_SupportsEditmode) &&
|
||||
modifier_supportsMapping(md));
|
||||
}
|
||||
|
||||
bool modifier_couldBeCage(struct Scene *scene, ModifierData *md)
|
||||
{
|
||||
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
|
||||
|
@ -908,7 +908,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob,
|
||||
uiButSetFlag(but, UI_BUT_DISABLED);
|
||||
uiButSetFunc(but, modifiers_setOnCage, ob, md);
|
||||
}
|
||||
else {
|
||||
else if (modifier_supportsCage(scene, md)) {
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
/* place holder button */
|
||||
|
Loading…
Reference in New Issue
Block a user