Skip to content

Commit 62bbab4

Browse files
committed
fixes issues with the override keymap implementation
1 parent d895345 commit 62bbab4

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

src/Application/index.js

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -125,26 +125,23 @@ export default function(App, appData, platformSettings) {
125125

126126
/**
127127
* This function overides the default keymap with the latest keymap.
128-
* @param overrideKeymap
128+
* @param customKeymap
129129
* @param keepDuplicates
130130
*/
131-
overRideKeyMap(overrideKeymap, keepDuplicates = false) {
132-
let baseKeymap = this.stage.application.config.keys
133-
if (keepDuplicates) {
134-
baseKeymap = Object.assign({}, baseKeymap, overrideKeymap)
135-
} else {
136-
Object.keys(overrideKeymap).reduce((keymapping, key) => {
137-
// prevent duplicate values to exist in final keymapping (i.e. 2 keys listening to 'Back')
138-
const duplicateIndex = Object.values(baseKeymap).indexOf(
139-
overrideKeymap[key]
140-
)
141-
duplicateIndex > -1 &&
142-
delete keymapping[Object.keys(baseKeymap)[duplicateIndex]]
143-
keymapping[key] = overrideKeymap[key]
144-
return keymapping
145-
}, baseKeymap)
146-
}
147-
return baseKeymap
131+
overRideKeyMap(customKeymap, keepDuplicates = false) {
132+
const baseKeymap = this.stage.application.config.keys
133+
Object.keys(customKeymap).reduce((keymapping, key) => {
134+
// prevent duplicate values to exist in final keymapping (i.e. 2 keys listening to 'Back')
135+
if (!keepDuplicates) {
136+
Object.keys(baseKeymap).forEach(baseKey => {
137+
if (baseKey != key && baseKeymap[baseKey] == customKeymap[key]) {
138+
delete keymapping[baseKey]
139+
}
140+
})
141+
}
142+
keymapping[key] = customKeymap[key]
143+
return keymapping
144+
}, baseKeymap)
148145
}
149146

150147
_setup() {

0 commit comments

Comments
 (0)