From 3f68cdfdb419aac3e5ad00e9de0bad988ce30c05 Mon Sep 17 00:00:00 2001 From: Yev Vlasenko Date: Sun, 26 Nov 2017 11:00:17 +0000 Subject: [PATCH] Fixed bug where previously focused element (document.activeElement) neede to be unfocused. Otherwise all key and focus events where performed on that element --- src/Modal.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Modal.vue b/src/Modal.vue index fee7f85..844429d 100644 --- a/src/Modal.vue +++ b/src/Modal.vue @@ -258,7 +258,7 @@ } if (this.clickToClose) { - window.addEventListener('keyup', this.onEscapeKeyUp) + // window.addEventListener('keyup', this.onEscapeKeyUp) } }, /** @@ -268,7 +268,7 @@ window.removeEventListener('resize', this.onWindowResize) if (this.clickToClose) { - window.removeEventListener('keyup', this.onEscapeKeyUp) + // window.removeEventListener('keyup', this.onEscapeKeyUp) } }, computed: { @@ -381,9 +381,9 @@ }, onEscapeKeyUp (event) { - if ((event.keyCode || event.which) === 27 && this.visible) { - this.$modal.hide(this.name) - } + // if (event.which === 27 && this.visible) { + // this.$modal.hide(this.name) + // } }, onWindowResize () { @@ -427,11 +427,20 @@ toggle (state, params) { const { reset, scrollable, visible } = this + console.log('woot') + const beforeEventName = visible ? 'before-close' : 'before-open' if (beforeEventName === 'before-open') { + /** + * Need to unfocus previously focused element, otherwise + * all keypress events (ESC press, for example) will trigger on that element. + */ + if (document.activeElement) { + document.activeElement.blur() + } if (reset) { this.setInitialSize()