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:
authorCampbell Barton <ideasman42@gmail.com>2019-02-14 03:11:53 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-14 03:11:53 +0300
commit6c2a0049e4f37ede5dae6ae771dfeb2bf8050ee4 (patch)
tree4979760a91c18986f77d965a20a9bef2bbf46d09 /release/scripts/modules/bpy
parenta9da750aee081d2d739fe667a587cacef8fc9483 (diff)
Fix T61497: Old keymap causes error on startup
When a keymap has an error loading, don't make it active since it will be partially loaded and not usable.
Diffstat (limited to 'release/scripts/modules/bpy')
-rw-r--r--release/scripts/modules/bpy/utils/__init__.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py
index b4c8c0899ac..ce7781517b8 100644
--- a/release/scripts/modules/bpy/utils/__init__.py
+++ b/release/scripts/modules/bpy/utils/__init__.py
@@ -587,15 +587,12 @@ def keyconfig_init():
def keyconfig_set(filepath, report=None):
from os.path import basename, splitext
- from itertools import chain
if _bpy.app.debug_python:
print("loading preset:", filepath)
keyconfigs = _bpy.context.window_manager.keyconfigs
- keyconfigs_old = keyconfigs[:]
-
try:
error_msg = ""
execfile(filepath)
@@ -603,17 +600,18 @@ def keyconfig_set(filepath, report=None):
import traceback
error_msg = traceback.format_exc()
+ name = splitext(basename(filepath))[0]
+ kc_new = keyconfigs.get(name)
+
if error_msg:
if report is not None:
report({'ERROR'}, error_msg)
print(error_msg)
-
- kc_new = next(chain(iter(kc for kc in keyconfigs
- if kc not in keyconfigs_old), (None,)))
+ if kc_new is not None:
+ keyconfigs.remove(kc_new)
+ return False
# Get name, exception for default keymap to keep backwards compatibility.
- name = splitext(basename(filepath))[0]
- kc_new = keyconfigs.get(name)
if kc_new is None:
if report is not None:
report({'ERROR'}, "Failed to load keymap %r" % filepath)