[Bf-blender-cvs] [ca5dd63618b] blender2.8: Fix toolbar keymap accumulating items

Campbell Barton noreply at git.blender.org
Fri Nov 23 05:22:06 CET 2018


Commit: ca5dd63618b29df6d5a9c451fc05226e02811844
Author: Campbell Barton
Date:   Fri Nov 23 15:16:45 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBca5dd63618b29df6d5a9c451fc05226e02811844

Fix toolbar keymap accumulating items

Create a temporary keymap with items from the original.

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

M	release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py

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

diff --git a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
index 3d861763ad6..97ace1b180b 100644
--- a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
+++ b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
@@ -77,12 +77,22 @@ def generate(context, space_type):
     # Temporary, only create so we can pass 'properties' to find_item_from_operator.
     use_hack_properties = True
 
-    km_name = "Toolbar Popup"
+    km_name_default = "Toolbar Popup"
+    km_name = km_name_default + " <temp>"
     wm = context.window_manager
     keyconf = wm.keyconfigs.active
     keymap = keyconf.keymaps.get(km_name)
     if keymap is None:
-        keymap = keyconf.keymaps.new(km_name, space_type='EMPTY', region_type='TEMPORARY', tool=True)
+        keymap = keyconf.keymaps.new(km_name, space_type='EMPTY', region_type='TEMPORARY')
+    for kmi in keymap.keymap_items:
+        keymap.keymap_items.remove(kmi)
+
+    keymap_src = keyconf.keymaps.get(km_name_default)
+    if keymap_src is not None:
+        for kmi_src in keymap_src.keymap_items:
+            keymap.keymap_items.new_from_item(kmi_src)
+    del keymap_src
+
 
     kmi_unique_args = set()



More information about the Bf-blender-cvs mailing list