From a159a8422841381687055c98fa58beb485a6b019 Mon Sep 17 00:00:00 2001 From: Aidan Timson Date: Mon, 16 Feb 2026 12:47:48 +0000 Subject: [PATCH] Prevent scrim close on lovelace editor dialogs (#29653) * Prevent scrim close on lovelace editor dialogs * Prevent other editors --- .../badge-editor/hui-dialog-edit-badge.ts | 19 +------------------ .../card-editor/hui-dialog-edit-card.ts | 1 + .../section-editor/hui-dialog-edit-section.ts | 1 + .../view-editor/hui-dialog-edit-view.ts | 1 + .../hui-dialog-edit-view-header.ts | 1 + 5 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts b/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts index 742802cb67..2fa1cd45ac 100644 --- a/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts +++ b/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts @@ -82,8 +82,6 @@ export class HuiDialogEditBadge @state() private _dirty = false; - @state() private _isEscapeEnabled = true; - public async showDialog(params: EditBadgeDialogParams): Promise { this._params = params; this._GUImode = true; @@ -126,9 +124,6 @@ export class HuiDialogEditBadge private _dialogClosed(): void { this._open = false; - this._isEscapeEnabled = true; - window.removeEventListener("dialog-closed", this._enableEscapeKeyClose); - window.removeEventListener("hass-more-info", this._disableEscapeKeyClose); this._params = undefined; this._badgeConfig = undefined; this._error = undefined; @@ -155,16 +150,6 @@ export class HuiDialogEditBadge } } - private _enableEscapeKeyClose = (ev: any) => { - if (ev.detail.dialog === "ha-more-info-dialog") { - this._isEscapeEnabled = true; - } - }; - - private _disableEscapeKeyClose = () => { - this._isEscapeEnabled = false; - }; - protected render() { if (!this._params) { return nothing; @@ -209,7 +194,7 @@ export class HuiDialogEditBadge .hass=${this.hass} .open=${this._open} .width=${this.large ? "full" : "large"} - ?prevent-scrim-close=${!this._isEscapeEnabled} + prevent-scrim-close @keydown=${this._ignoreKeydown} @closed=${this._dialogClosed} @opened=${this._opened} @@ -334,8 +319,6 @@ export class HuiDialogEditBadge } private _opened() { - window.addEventListener("dialog-closed", this._enableEscapeKeyClose); - window.addEventListener("hass-more-info", this._disableEscapeKeyClose); this._badgeEditorEl?.focusYamlEditor(); } 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 f2e5650d99..222f51ec89 100644 --- a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts +++ b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts @@ -169,6 +169,7 @@ export class HuiDialogEditCard .hass=${this.hass} .open=${this._open} .width=${this.large ? "full" : "large"} + prevent-scrim-close @keydown=${this._ignoreKeydown} @closed=${this._dialogClosed} @opened=${this._opened} diff --git a/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts b/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts index 1b40b78b11..8d74d5d50d 100644 --- a/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts +++ b/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts @@ -158,6 +158,7 @@ export class HuiDialogEditSection