Tool System: store keymap name in tool instead of the keymap
Resetting keymaps caused them to become invalid (crashing on access).
This commit is contained in:
@@ -306,7 +306,7 @@ class ToolSelectPanelHelper:
|
||||
if km is None:
|
||||
km = kc.keymaps.new(km_idname, space_type=cls.bl_space_type, region_type='WINDOW', tool=True)
|
||||
keymap_fn[0](km)
|
||||
keymap_fn[0] = km
|
||||
keymap_fn[0] = km.name
|
||||
|
||||
# Special internal function, gives use items that contain keymaps.
|
||||
@staticmethod
|
||||
@@ -354,9 +354,9 @@ class ToolSelectPanelHelper:
|
||||
for context_mode_test, tools in cls.tools_all():
|
||||
if context_mode_test == context_mode:
|
||||
for item in cls._tools_flatten_with_keymap(tools):
|
||||
km = item.keymap[0]
|
||||
km_name = item.keymap[0]
|
||||
# print((km.name, cls.bl_space_type, 'WINDOW', []))
|
||||
yield (km.name, cls.bl_space_type, 'WINDOW', [])
|
||||
yield (km_name, cls.bl_space_type, 'WINDOW', [])
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Layout Generators
|
||||
@@ -604,7 +604,7 @@ def _activate_by_item(context, space_type, item, index):
|
||||
tool = ToolSelectPanelHelper._tool_active_from_context(context, space_type, create=True)
|
||||
tool.setup(
|
||||
name=item.text,
|
||||
keymap=item.keymap[0].name if item.keymap is not None else "",
|
||||
keymap=item.keymap[0] if item.keymap is not None else "",
|
||||
cursor=item.cursor or 'DEFAULT',
|
||||
gizmo_group=item.widget or "",
|
||||
data_block=item.data_block or "",
|
||||
|
||||
Reference in New Issue
Block a user