diff --git a/public/scripts/CharacterGroupOverlay.js b/public/scripts/CharacterGroupOverlay.js index f389a1ec5..0ed8f9125 100644 --- a/public/scripts/CharacterGroupOverlay.js +++ b/public/scripts/CharacterGroupOverlay.js @@ -265,16 +265,14 @@ class CharacterGroupOverlay { switch (this.state) { case CharacterGroupOverlayState.browse: this.container.classList.remove(CharacterGroupOverlay.selectModeClass); - [...this.container.getElementsByClassName(CharacterGroupOverlay.characterClass)] - .forEach(element => element.removeEventListener('click', this.toggleCharacterSelected)); + this.#enableClickEventsForCharacters(); this.clearSelectedCharacters(); this.disableContextMenu(); CharacterContextMenu.hide(); break; case CharacterGroupOverlayState.select: this.container.classList.add(CharacterGroupOverlay.selectModeClass); - [...this.container.getElementsByClassName(CharacterGroupOverlay.characterClass)] - .forEach(element => element.addEventListener('click', this.toggleCharacterSelected)); + this.#disableClickEventsForCharacters(); this.enableContextMenu(); break; } @@ -282,6 +280,12 @@ class CharacterGroupOverlay { this.stateChangeCallbacks.forEach(callback => callback(this.state)); } + #enableClickEventsForCharacters = () => [...this.container.getElementsByClassName(CharacterGroupOverlay.characterClass)] + .forEach(element => element.removeEventListener('click', this.toggleCharacterSelected)); + + #disableClickEventsForCharacters = () => [...this.container.getElementsByClassName(CharacterGroupOverlay.characterClass)] + .forEach(element => element.addEventListener('click', this.toggleCharacterSelected)); + toggleCharacterSelected = event => { event.stopPropagation();