From 51f6ce0fdb32061b681d63e8de4d96eb8b59e1e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 12 Aug 2016 16:13:24 +0200 Subject: Fix common key properties not applying when property is absent --- music_sampler/mapping.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/music_sampler/mapping.py b/music_sampler/mapping.py index a04c2f6..99c9977 100644 --- a/music_sampler/mapping.py +++ b/music_sampler/mapping.py @@ -6,6 +6,7 @@ from kivy.clock import Clock import threading import yaml import sys +import copy from collections import defaultdict from transitions.extensions import HierarchicalMachine as Machine @@ -355,12 +356,13 @@ class Mapping(RelativeLayout): isinstance(config['key_properties'], dict): common_key_properties = config['key_properties']['common'] include_aliases(common_key_properties, aliases) + check_key_property(common_key_properties, 'common') elif 'common' in config['key_properties']: warn_print("'common' key in key_properties is not a hash, ignored") key_properties = defaultdict(lambda: { "actions": [], - "properties": {}, + "properties": copy.deepcopy(common_key_properties), "files": [] }) @@ -376,12 +378,9 @@ class Mapping(RelativeLayout): continue include_aliases(key_prop, aliases) - for _key in common_key_properties: - key_prop.setdefault(_key, common_key_properties[_key]) - check_key_property(key_prop, key) - key_properties[key]["properties"] = key_prop + key_properties[key]["properties"].update(key_prop) for mapped_key in check_mapped_keys(config): for index, action in enumerate(check_mapped_key( -- cgit v1.2.3