Object Mode: pass object mode to CTX_data_mode_enum_ex
This commit is contained in:
@@ -260,7 +260,9 @@ struct RenderEngineType *CTX_data_engine_type(const bContext *C);
|
||||
struct ToolSettings *CTX_data_tool_settings(const bContext *C);
|
||||
|
||||
const char *CTX_data_mode_string(const bContext *C);
|
||||
int CTX_data_mode_enum_ex(const struct Object *obedit, const struct Object *ob);
|
||||
int CTX_data_mode_enum_ex(
|
||||
const struct Object *obedit, const struct Object *ob,
|
||||
const short object_mode);
|
||||
int CTX_data_mode_enum(const bContext *C);
|
||||
|
||||
void CTX_data_main_set(bContext *C, struct Main *bmain);
|
||||
|
||||
@@ -997,7 +997,7 @@ SceneCollection *CTX_data_scene_collection(const bContext *C)
|
||||
return BKE_collection_master(&scene->id);
|
||||
}
|
||||
|
||||
int CTX_data_mode_enum_ex(const Object *obedit, const Object *ob)
|
||||
int CTX_data_mode_enum_ex(const Object *obedit, const Object *ob, const short object_mode)
|
||||
{
|
||||
// Object *obedit = CTX_data_edit_object(C);
|
||||
if (obedit) {
|
||||
@@ -1021,12 +1021,12 @@ int CTX_data_mode_enum_ex(const Object *obedit, const Object *ob)
|
||||
else {
|
||||
// Object *ob = CTX_data_active_object(C);
|
||||
if (ob) {
|
||||
if (ob->mode & OB_MODE_POSE) return CTX_MODE_POSE;
|
||||
else if (ob->mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
|
||||
else if (ob->mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
|
||||
else if (ob->mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
|
||||
else if (ob->mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
|
||||
else if (ob->mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
|
||||
if (object_mode & OB_MODE_POSE) return CTX_MODE_POSE;
|
||||
else if (object_mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
|
||||
else if (object_mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
|
||||
else if (object_mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
|
||||
else if (object_mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
|
||||
else if (object_mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1037,7 +1037,7 @@ int CTX_data_mode_enum(const bContext *C)
|
||||
{
|
||||
Object *obedit = CTX_data_edit_object(C);
|
||||
Object *obact = obedit ? NULL : CTX_data_active_object(C);
|
||||
return CTX_data_mode_enum_ex(obedit, obact);
|
||||
return CTX_data_mode_enum_ex(obedit, obact, obact ? obact->mode : OB_MODE_OBJECT);
|
||||
}
|
||||
|
||||
/* would prefer if we can use the enum version below over this one - Campbell */
|
||||
|
||||
@@ -3155,7 +3155,7 @@ static void drw_engines_enable_external(void)
|
||||
static void drw_engines_enable(const Scene *scene, ViewLayer *view_layer, RenderEngineType *engine_type)
|
||||
{
|
||||
Object *obact = OBACT(view_layer);
|
||||
const int mode = CTX_data_mode_enum_ex(scene->obedit, obact);
|
||||
const int mode = CTX_data_mode_enum_ex(scene->obedit, obact, DST.draw_ctx.object_mode);
|
||||
|
||||
drw_engines_enable_from_engine(engine_type);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user