Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2020-04-21 13:55:40 +0300
committerBastien Montagne <bastien@blender.org>2020-04-21 13:55:40 +0300
commit06a2ae281be53f7234b1778b9b06242fe54823f0 (patch)
treef1bd05cbe757ca1235b2c6a69ca0b0b8f1bc2715 /source/blender
parent49a29c9c76ce1ca8f87f042c2650cec50d13125d (diff)
parentc73d6162be6437a76da94a36502770b440edc454 (diff)
Merge branch 'blender-v2.83-release'
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenloader/intern/readfile.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index e644f932f35..6b59dfbd10b 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9637,6 +9637,15 @@ static void read_libblock_undo_restore_at_old_address(FileData *fd, Main *main,
const short idcode = GS(id->name);
+ /* XXX 3DCursor (witch is UI data and as such should not be affected by undo) is stored in
+ * Scene... So this requires some special handling, previously done in `blo_lib_link_restore()`,
+ * but this cannot work anymore when we overwrite existing memory... */
+ if (idcode == ID_SCE) {
+ Scene *scene_old = (Scene *)id_old;
+ Scene *scene = (Scene *)id;
+ SWAP(View3DCursor, scene_old->cursor, scene->cursor);
+ }
+
Main *old_bmain = fd->old_mainlist->first;
ListBase *old_lb = which_libbase(old_bmain, idcode);
ListBase *new_lb = which_libbase(main, idcode);