[Bf-blender-cvs] [d4d03f736b8] master: Fix (unreported): crash on undo when using pinned id in spreadsheet

Jacques Lucke noreply at git.blender.org
Thu Mar 11 13:28:38 CET 2021


Commit: d4d03f736b85f9db0d738428cf9521b2084232db
Author: Jacques Lucke
Date:   Thu Mar 11 13:28:06 2021 +0100
Branches: master
https://developer.blender.org/rBd4d03f736b85f9db0d738428cf9521b2084232db

Fix (unreported): crash on undo when using pinned id in spreadsheet

Now the behavior is the same as in the properties editor, as far as I can tell.

===================================================================

M	release/scripts/startup/bl_operators/spreadsheet.py
M	source/blender/blenloader/intern/readfile.c

===================================================================

diff --git a/release/scripts/startup/bl_operators/spreadsheet.py b/release/scripts/startup/bl_operators/spreadsheet.py
index a2f9b2ad412..fa6568f6f11 100644
--- a/release/scripts/startup/bl_operators/spreadsheet.py
+++ b/release/scripts/startup/bl_operators/spreadsheet.py
@@ -24,7 +24,7 @@ class SPREADSHEET_OT_toggle_pin(bpy.types.Operator):
     '''Turn on or off pinning'''
     bl_idname = "spreadsheet.toggle_pin"
     bl_label = "Toggle Pin"
-    bl_options = {'REGISTER', 'UNDO'}
+    bl_options = {'REGISTER'}
 
     @classmethod
     def poll(cls, context):
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index de7353d827a..302abf35f1c 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2985,6 +2985,12 @@ static void lib_link_workspace_layout_restore(struct IDNameLib_Map *id_map,
 
           sclip->scopes.ok = 0;
         }
+        else if (sl->spacetype == SPACE_SPREADSHEET) {
+          SpaceSpreadsheet *sspreadsheet = (SpaceSpreadsheet *)sl;
+
+          sspreadsheet->pinned_id = restore_pointer_by_name(
+              id_map, sspreadsheet->pinned_id, USER_IGNORE);
+        }
       }
     }
   }



More information about the Bf-blender-cvs mailing list