Commit: f372758257e268d4c1278aceeb243c1aa83ad695
Author: Thomas Dinges
Date: Fri Dec 13 20:57:36 2013 +0100
http://developer.blender.org/rBf372758257e268d4c1278aceeb243c1aa83ad695
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. :)
===================================================================
M source/blender/blenkernel/BKE_modifier.h
M source/blender/blenkernel/intern/modifier.c
M source/blender/editors/interface/interface_templates.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_modifier.h
b/source/blender/blenkernel/BKE_modifier.h
index 65038c7..3275adf 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -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);
diff --git a/source/blender/blenkernel/intern/modifier.c
b/source/blender/blenkernel/intern/modifier.c
index 4871b9b..9f82fa8 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -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);
diff --git a/source/blender/editors/interface/interface_templates.c
b/source/blender/editors/interface/interface_templates.c
index 5b208a3..ad3dd53 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -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 */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs