From b306b7dbd3503ce6cf08782076886beb38aae7b3 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Sat, 17 Jan 2026 03:18:47 +0100 Subject: [PATCH] adsad --- public/assets/js/bridge/rte-editor.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/public/assets/js/bridge/rte-editor.js b/public/assets/js/bridge/rte-editor.js index 5b34501..51717c3 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -137,6 +137,20 @@ const modal = editor && editor.Modal; if (!modal || editor.__bridgeRteModalOpen) return; editor.__bridgeRteModalOpen = true; + editor.__bridgeRteAllowClose = false; + + if (!modal.__bridgeCloseGuarded) { + modal.__bridgeCloseGuarded = true; + modal.__bridgeOriginalClose = modal.close ? modal.close.bind(modal) : null; + if (modal.close) { + modal.close = function (...args) { + if (editor.__bridgeRteAllowClose && modal.__bridgeOriginalClose) { + return modal.__bridgeOriginalClose(...args); + } + return undefined; + }; + } + } try { const editing = editor.getEditing && editor.getEditing(); @@ -149,12 +163,16 @@ } catch {} const closeModal = () => { + editor.__bridgeRteAllowClose = true; editor.__bridgeRteModalOpen = false; - if (typeof modal.close === 'function') { + if (typeof modal.__bridgeOriginalClose === 'function') { + modal.__bridgeOriginalClose(); + } else if (typeof modal.close === 'function') { modal.close(); } else if (modal.getModel && modal.getModel().set) { modal.getModel().set('open', false); } + editor.__bridgeRteAllowClose = false; }; const doc = document; @@ -430,6 +448,12 @@ if (modal.el) { const closeBtn = modal.el.querySelector('.gjs-mdl-btn-close'); if (closeBtn) closeBtn.style.display = 'none'; + const backdrop = modal.el.querySelector('.gjs-mdl-dialog'); + if (backdrop) { + backdrop.addEventListener('click', (evt) => { + evt.stopPropagation(); + }); + } } modal.open(); };