[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60345] trunk/blender/source/blender/ blenkernel/intern: Fix #36793: missing update on undo with proxy object that is not using a proxy group.
Brecht Van Lommel
brechtvanlommel at pandora.be
Mon Sep 23 23:55:57 CEST 2013
Revision: 60345
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60345
Author: blendix
Date: 2013-09-23 21:55:56 +0000 (Mon, 23 Sep 2013)
Log Message:
-----------
Fix #36793: missing update on undo with proxy object that is not using a proxy group.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/depsgraph.c
trunk/blender/source/blender/blenkernel/intern/object.c
Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2013-09-23 21:20:04 UTC (rev 60344)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2013-09-23 21:55:56 UTC (rev 60345)
@@ -2115,6 +2115,8 @@
if ((oblay & lay) & ~scene->lay_updated) {
if (ELEM6(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LATTICE))
ob->recalc |= OB_RECALC_DATA;
+ if (ob->proxy && (ob->proxy_group == NULL))
+ ob->proxy->recalc |= OB_RECALC_DATA;
if (ob->dup_group)
dag_group_on_visible_update(ob->dup_group);
}
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2013-09-23 21:20:04 UTC (rev 60344)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2013-09-23 21:55:56 UTC (rev 60345)
@@ -2835,21 +2835,20 @@
/* quick cache removed */
}
- /* the no-group proxy case, we call update */
- if (ob->proxy && ob->proxy_group == NULL) {
- /* set pointer in library proxy target, for copying, but restore it */
- ob->proxy->proxy_from = ob;
- // printf("call update, lib ob %s proxy %s\n", ob->proxy->id.name, ob->id.name);
- BKE_object_handle_update(scene, ob->proxy);
- }
-
ob->recalc &= ~OB_RECALC_ALL;
}
/* the case when this is a group proxy, object_update is called in group.c */
if (ob->proxy) {
+ /* set pointer in library proxy target, for copying, but restore it */
ob->proxy->proxy_from = ob;
// printf("set proxy pointer for later group stuff %s\n", ob->id.name);
+
+ /* the no-group proxy case, we call update */
+ if (ob->proxy_group == NULL) {
+ // printf("call update, lib ob %s proxy %s\n", ob->proxy->id.name, ob->id.name);
+ BKE_object_handle_update(scene, ob->proxy);
+ }
}
}
/* WARNING: "scene" here may not be the scene object actually resides in.
More information about the Bf-blender-cvs
mailing list