diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-21 12:07:17 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-22 12:29:56 +0300 |
commit | 25f1c2b04e0d98587c88c5ea26b59650e5c2e3f7 (patch) | |
tree | c4e038cae798ff9c15fcee4fb54ffbb18295ed63 /ant_landscape | |
parent | f24ca278e8f67e8cf3f3635b138089d8e53681af (diff) |
Add-ons: remove temporary disabling of use_global_undo
This can cause bugs where if the operator throws an exception, undo is not
properly enabled again. There have been maybe a dozen Blender bug reports
related to this. This could get worse now that we are autosaving preferences.
Some add-ons guard against this, but turning off undo should not be needed in
the first place. If the operator is set to do an undo push, any operators it
calls will automatically not do any undo pushes.
If this fail in some cases, it should be reported as a bug in Blender. I could
not find issues or a performance impact testing a few add-ons though.
Differential Revision: https://developer.blender.org/D4908
Diffstat (limited to 'ant_landscape')
-rw-r--r-- | ant_landscape/add_mesh_ant_landscape.py | 5 | ||||
-rw-r--r-- | ant_landscape/ant_functions.py | 14 | ||||
-rw-r--r-- | ant_landscape/mesh_ant_displace.py | 7 |
3 files changed, 0 insertions, 26 deletions
diff --git a/ant_landscape/add_mesh_ant_landscape.py b/ant_landscape/add_mesh_ant_landscape.py index bb2173d0..c80256d5 100644 --- a/ant_landscape/add_mesh_ant_landscape.py +++ b/ant_landscape/add_mesh_ant_landscape.py @@ -593,10 +593,6 @@ class AntAddLandscape(bpy.types.Operator): if not self.refresh: return {'PASS_THROUGH'} - # turn off undo - undo = bpy.context.preferences.edit.use_global_undo - bpy.context.preferences.edit.use_global_undo = False - # turn off 'Enter Edit Mode' use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode bpy.context.preferences.edit.use_enter_edit_mode = False @@ -783,7 +779,6 @@ class AntAddLandscape(bpy.types.Operator): self.refresh = False # restore pre operator state - context.preferences.edit.use_global_undo = undo bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode return {'FINISHED'} diff --git a/ant_landscape/ant_functions.py b/ant_landscape/ant_functions.py index 62fe4916..075c33b0 100644 --- a/ant_landscape/ant_functions.py +++ b/ant_landscape/ant_functions.py @@ -141,10 +141,6 @@ class AntLandscapeRefresh(bpy.types.Operator): def execute(self, context): - # turn off undo - undo = bpy.context.preferences.edit.use_global_undo - bpy.context.preferences.edit.use_global_undo = False - # ant object items obj = bpy.context.active_object @@ -177,9 +173,6 @@ class AntLandscapeRefresh(bpy.types.Operator): else: pass - # restore pre operator undo state - context.preferences.edit.use_global_undo = undo - return {'FINISHED'} # ------------------------------------------------------------ @@ -201,10 +194,6 @@ class AntLandscapeRegenerate(bpy.types.Operator): def execute(self, context): - # turn off undo - undo = bpy.context.preferences.edit.use_global_undo - bpy.context.preferences.edit.use_global_undo = False - view_layer = bpy.context.view_layer # ant object items obj = bpy.context.active_object @@ -328,9 +317,6 @@ class AntLandscapeRegenerate(bpy.types.Operator): new_ob.select_set(True) view_layer.objects.active = new_ob - # restore pre operator undo state - context.preferences.edit.use_global_undo = undo - return {'FINISHED'} diff --git a/ant_landscape/mesh_ant_displace.py b/ant_landscape/mesh_ant_displace.py index 3442711f..917cc34b 100644 --- a/ant_landscape/mesh_ant_displace.py +++ b/ant_landscape/mesh_ant_displace.py @@ -596,10 +596,6 @@ class AntMeshDisplace(bpy.types.Operator): if not self.refresh: return {'PASS_THROUGH'} - # turn off undo - undo = bpy.context.preferences.edit.use_global_undo - bpy.context.preferences.edit.use_global_undo = False - ob = context.object # Properties: @@ -725,7 +721,4 @@ class AntMeshDisplace(bpy.types.Operator): if self.auto_refresh is False: self.refresh = False - # restore pre operator undo state - context.preferences.edit.use_global_undo = undo - return {'FINISHED'} |