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