diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts index 14acc87e05..b456409918 100755 --- a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts +++ b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts @@ -75,6 +75,8 @@ export class HuiDialogEditCard @state() private _dirty = false; + @state() private _isEscapeEnabled = true; + public async showDialog(params: EditCardDialogParams): Promise { this._params = params; this._GUImode = true; @@ -93,6 +95,9 @@ export class HuiDialogEditCard } public closeDialog(): boolean { + this._isEscapeEnabled = true; + window.removeEventListener("dialog-closed", this._enableEscapeKeyClose); + window.removeEventListener("hass-more-info", this._disableEscapeKeyClose); if (this._dirty) { this._confirmCancel(); return false; @@ -125,6 +130,16 @@ export class HuiDialogEditCard } } + private _enableEscapeKeyClose = (ev: any) => { + if (ev.detail.dialog === "ha-more-info-dialog") { + this._isEscapeEnabled = true; + } + }; + + private _disableEscapeKeyClose = () => { + this._isEscapeEnabled = false; + }; + protected render(): TemplateResult { if (!this._params) { return html``; @@ -157,6 +172,7 @@ export class HuiDialogEditCard