diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py index 9ec6d249129..d955985d68f 100644 --- a/release/scripts/modules/addon_utils.py +++ b/release/scripts/modules/addon_utils.py @@ -251,7 +251,7 @@ def _addon_remove(module_name): addons.remove(addon) -def enable(module_name, default_set=True, persistent=False, handle_error=None): +def enable(module_name, default_set=False, persistent=False, handle_error=None): """ Enables an addon by name. @@ -308,7 +308,8 @@ def enable(module_name, default_set=True, persistent=False, handle_error=None): mod.__addon_enabled__ = False except: handle_error() - _addon_remove(module_name) + if default_set: + _addon_remove(module_name) return None # 2) try register collected modules @@ -322,7 +323,8 @@ def enable(module_name, default_set=True, persistent=False, handle_error=None): getattr(mod, "__file__", module_name)) handle_error() del sys.modules[module_name] - _addon_remove(module_name) + if default_set: + _addon_remove(module_name) return None # * OK loaded successfully! * diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 8d04cb132e6..e7f48eccbf1 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -1737,7 +1737,7 @@ class WM_OT_addon_enable(Operator): err_str = traceback.format_exc() print(err_str) - mod = addon_utils.enable(self.module, handle_error=err_cb) + mod = addon_utils.enable(self.module, default_set=True, handle_error=err_cb) if mod: info = addon_utils.module_bl_info(mod) diff --git a/tests/python/bl_load_addons.py b/tests/python/bl_load_addons.py index 716d08b16d6..227edf4164d 100644 --- a/tests/python/bl_load_addons.py +++ b/tests/python/bl_load_addons.py @@ -63,7 +63,7 @@ def test_load_addons(): for mod in modules: mod_name = mod.__name__ print("\tenabling:", mod_name) - addon_utils.enable(mod_name) + addon_utils.enable(mod_name, default_set=True) if mod_name not in addons: addons_fail.append(mod_name) @@ -87,7 +87,7 @@ def reload_addons(do_reload=True, do_reverse=True): for mod in modules: mod_name = mod.__name__ print("\tenabling:", mod_name) - addon_utils.enable(mod_name) + addon_utils.enable(mod_name, default_set=True) assert(mod_name in addons) for mod in modules: diff --git a/tests/python/bl_load_py_modules.py b/tests/python/bl_load_py_modules.py index c0ec4ce5144..07905dfa4b4 100644 --- a/tests/python/bl_load_py_modules.py +++ b/tests/python/bl_load_py_modules.py @@ -74,7 +74,7 @@ def load_addons(): for mod in modules: mod_name = mod.__name__ - addon_utils.enable(mod_name) + addon_utils.enable(mod_name, default_set=True) assert(mod_name in addons)