diff --git a/keymapper/X.py b/keymapper/X.py index 62abd647..76dd1764 100644 --- a/keymapper/X.py +++ b/keymapper/X.py @@ -96,7 +96,7 @@ class Mapping: """ print('change', previous_keycode, new_keycode, character) if new_keycode and character and new_keycode != previous_keycode: - self.add(new_keycode, character) + self._mapping[new_keycode] = character if new_keycode != previous_keycode: # clear previous mapping of that code, because the line # representing that one will now represent a different one. diff --git a/tests/testcases/integration.py b/tests/testcases/integration.py index 160f36a1..aab1b993 100644 --- a/tests/testcases/integration.py +++ b/tests/testcases/integration.py @@ -114,6 +114,11 @@ class Integration(unittest.TestCase): gtk_iteration() self.assertEqual(self.window.selected_preset, 'new preset') + self.assertListEqual( + sorted(os.listdir(f'{tmp}/symbols/device_1')), + ['new_preset', 'new_preset_2'] + ) + # now try to change the name self.window.get('preset_name_input').set_text('abc 123') gtk_iteration() @@ -132,7 +137,7 @@ class Integration(unittest.TestCase): ) self.assertListEqual( sorted(os.listdir(f'{tmp}/symbols/device_1')), - ['abc_123', 'new_preset', 'new_preset_2'] + ['abc_123', 'new_preset_2'] )