diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-23 07:16:45 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-23 07:19:57 +0300 |
commit | ca5dd63618b29df6d5a9c451fc05226e02811844 (patch) | |
tree | a7071d0732c1a796bdaa8c99b7dc23743237c5cc /release/scripts/modules | |
parent | cfffe615f4794606fc2b7a1bdb148714e3c6e158 (diff) |
Fix toolbar keymap accumulating items
Create a temporary keymap with items from the original.
Diffstat (limited to 'release/scripts/modules')
-rw-r--r-- | release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py | 14 |
1 files changed, 12 insertions, 2 deletions
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() |