From ae42d4edbb8b4b36d44abbab2c51da3bf2e85213 Mon Sep 17 00:00:00 2001 From: Raykosan <71210053+Raykosan@users.noreply.github.com> Date: Wed, 26 Aug 2026 05:31:58 +0300 Subject: [PATCH] Added RS Label node --- web/rs_label.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/web/rs_label.js b/web/rs_label.js index 33edd30..c96761e 100644 --- a/web/rs_label.js +++ b/web/rs_label.js @@ -229,6 +229,10 @@ app.registerExtension({ }; nodeType.prototype.showSettingsDialog = async function() { + if (this.dialogOpen) { + return; + } + if (this._fontLoadPromise) { try { await this._fontLoadPromise; } catch (e) {} } @@ -286,8 +290,10 @@ app.registerExtension({ if (isDragging) { isDragging = false; title.style.cursor = "grab"; } }); + // FIX: Убран window.blur, оставлен только visibilitychange и Escape const closeDialog = () => { document.removeEventListener("keydown", escHandler); + document.removeEventListener("visibilitychange", visibilityHandler); if (dialog.parentNode) document.body.removeChild(dialog); this.dialogOpen = false; this.setDirtyCanvas(true, true); @@ -296,6 +302,11 @@ app.registerExtension({ const escHandler = (e) => { if (e.key === "Escape") closeDialog(); }; document.addEventListener("keydown", escHandler); + const visibilityHandler = () => { + if (document.hidden) closeDialog(); + }; + document.addEventListener("visibilitychange", visibilityHandler); + const createRow = (label, createControl) => { const row = document.createElement("div"); row.style.display = "flex";