Check for multiple matrix positions assigned to same key (#20039)
This commit is contained in:
parent
67dae1222f
commit
d6ce42ae5b
@ -90,8 +90,10 @@ def find_layouts(file):
|
||||
cli.log.error('Invalid LAYOUT macro in %s: Empty parameter name in macro %s at pos %s.', file, macro_name, i)
|
||||
elif key['label'] not in matrix_locations:
|
||||
cli.log.error('Invalid LAYOUT macro in %s: Key %s in macro %s has no matrix position!', file, key['label'], macro_name)
|
||||
elif len(matrix_locations.get(key['label'])) > 1:
|
||||
cli.log.error('Invalid LAYOUT macro in %s: Key %s in macro %s has multiple matrix positions (%s)', file, key['label'], macro_name, ', '.join(str(x) for x in matrix_locations[key['label']]))
|
||||
else:
|
||||
key['matrix'] = matrix_locations[key['label']]
|
||||
key['matrix'] = matrix_locations[key['label']][0]
|
||||
|
||||
parsed_layouts[macro_name] = {
|
||||
'layout': parsed_layout,
|
||||
@ -186,7 +188,9 @@ def _parse_matrix_locations(matrix, file, macro_name):
|
||||
row = row.replace('{', '').replace('}', '')
|
||||
for col_num, identifier in enumerate(row.split(',')):
|
||||
if identifier != 'KC_NO':
|
||||
matrix_locations[identifier] = [row_num, col_num]
|
||||
if identifier not in matrix_locations:
|
||||
matrix_locations[identifier] = []
|
||||
matrix_locations[identifier].append([row_num, col_num])
|
||||
|
||||
return matrix_locations
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user