diff --git a/src/components/keyboard/slider/keyboard-slider.component.html b/src/components/keyboard/slider/keyboard-slider.component.html index 0d1812ac..bd0dd323 100644 --- a/src/components/keyboard/slider/keyboard-slider.component.html +++ b/src/components/keyboard/slider/keyboard-slider.component.html @@ -1,6 +1,7 @@ \ No newline at end of file diff --git a/src/components/keyboard/slider/keyboard-slider.component.ts b/src/components/keyboard/slider/keyboard-slider.component.ts index f676e2e4..72fb8c75 100644 --- a/src/components/keyboard/slider/keyboard-slider.component.ts +++ b/src/components/keyboard/slider/keyboard-slider.component.ts @@ -78,6 +78,7 @@ type AnimationKeyboard = export class KeyboardSliderComponent implements OnChanges { @Input() layers: Layer[]; @Input() currentLayer: number; + @Input() keybindAnimationEnabled: boolean; @Output() keyClick = new EventEmitter(); @Output() keyHover = new EventEmitter(); diff --git a/src/components/svg/keyboard/svg-keyboard.component.html b/src/components/svg/keyboard/svg-keyboard.component.html index 1b97ba19..15174c84 100644 --- a/src/components/svg/keyboard/svg-keyboard.component.html +++ b/src/components/svg/keyboard/svg-keyboard.component.html @@ -3,6 +3,7 @@ diff --git a/src/components/svg/wrap/svg-keyboard-wrap.component.ts b/src/components/svg/wrap/svg-keyboard-wrap.component.ts index b67af34c..3001849b 100644 --- a/src/components/svg/wrap/svg-keyboard-wrap.component.ts +++ b/src/components/svg/wrap/svg-keyboard-wrap.component.ts @@ -46,6 +46,7 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges { private popoverShown: boolean; private keyEditConfig: { moduleId: number, keyId: number }; private popoverInitKeyAction: KeyAction; + private keybindAnimationEnabled: boolean; private currentLayer: number = 0; private tooltipData: { posTop: number, posLeft: number, content: { name: string, value: string }[], show: boolean }; private layers: Layer[]; @@ -89,13 +90,18 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges { } ngOnChanges(changes: SimpleChanges) { - if (changes['keymap'].previousValue.abbreviation !== changes['keymap'].currentValue.abbreviation) { - this.layers = this.keymap.layers; - this.currentLayer = 0; - this.popoverShown = false; - } else if (changes['keymap']) { + const keymapChanges = changes['keymap']; + if (keymapChanges) { this.popoverShown = false; + if (keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) { + this.layers = this.keymap.layers; + this.currentLayer = 0; + this.keybindAnimationEnabled = keymapChanges.isFirstChange(); + } else { + this.keybindAnimationEnabled = true; + } } + } onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {