Fix T38525: missing update when running bpy.ops.transform.* from the console.

This commit is contained in:
Brecht Van Lommel 2014-02-12 17:00:46 +01:00
parent 09e5373c06
commit f49e89fa37
Notes: blender-bot 2023-02-14 20:10:54 +01:00
Referenced by issue blender/blender-addons#38525, Python - transform.resize() missing update for Mirror modifier?
2 changed files with 25 additions and 17 deletions

View File

@ -6887,6 +6887,7 @@ void createTransData(bContext *C, TransInfo *t)
Scene *scene = t->scene;
Object *ob = OBACT;
/* if tests must match recalcData for correct updates */
if (t->options & CTX_TEXTURE) {
t->flag |= T_TEXTURE;
createTransTexspace(t);

View File

@ -689,8 +689,8 @@ static void recalcData_spaceclip(TransInfo *t)
}
}
/* helper for recalcData() - for 3d-view transforms */
static void recalcData_view3d(TransInfo *t)
/* helper for recalcData() - for object transforms, typically in the 3D view */
static void recalcData_objects(TransInfo *t)
{
Base *base = t->scene->basact;
@ -939,30 +939,37 @@ static void recalcData_sequencer(TransInfo *t)
/* called for updating while transform acts, once per redraw */
void recalcData(TransInfo *t)
{
if (t->spacetype == SPACE_NODE) {
flushTransNodes(t);
/* if tests must match createTransData for correct updates */
if (t->options & CTX_TEXTURE) {
recalcData_objects(t);
}
else if (t->spacetype == SPACE_SEQ) {
recalcData_sequencer(t);
}
else if (t->spacetype == SPACE_ACTION) {
recalcData_actedit(t);
}
else if (t->spacetype == SPACE_IPO) {
recalcData_graphedit(t);
}
else if (t->spacetype == SPACE_NLA) {
recalcData_nla(t);
else if (t->options & CTX_EDGE) {
recalcData_objects(t);
}
else if (t->spacetype == SPACE_IMAGE) {
recalcData_image(t);
}
else if (t->spacetype == SPACE_VIEW3D) {
recalcData_view3d(t);
else if (t->spacetype == SPACE_ACTION) {
recalcData_actedit(t);
}
else if (t->spacetype == SPACE_NLA) {
recalcData_nla(t);
}
else if (t->spacetype == SPACE_SEQ) {
recalcData_sequencer(t);
}
else if (t->spacetype == SPACE_IPO) {
recalcData_graphedit(t);
}
else if (t->spacetype == SPACE_NODE) {
flushTransNodes(t);
}
else if (t->spacetype == SPACE_CLIP) {
recalcData_spaceclip(t);
}
else {
recalcData_objects(t);
}
}
void drawLine(TransInfo *t, const float center[3], const float dir[3], char axis, short options)