Prevent esc of monaco widgets bubbling up to edit form scope

closes #5200
This commit is contained in:
Steve-Mcl
2025-06-29 11:37:52 +01:00
parent aadbbc96ee
commit d60e48a0f5

View File

@@ -1426,6 +1426,15 @@ RED.editor.codeEditor.monaco = (function() {
ed.gotoLine(row, col);
}
ed.type = type;
ed.onKeyDown((event) => {
if (event.keyCode === monaco.KeyCode.Escape) {
if (monacoWidgetsAreOpen(ed)) {
event.preventDefault();
}
}
})
return ed;
}
@@ -1435,6 +1444,16 @@ RED.editor.codeEditor.monaco = (function() {
return true;
}
function monacoWidgetsAreOpen(editor) {
/** @type {HTMLElement} */
const editorDomNode = editor.getDomNode()
const suggestVisible = !!editorDomNode.querySelector('.monaco-editor .suggest-widget.visible');
const parameterHintsVisible = !!editorDomNode.querySelector('.monaco-editor .parameter-hints-widget.visible');
const findWidgetVisible = !!editorDomNode.querySelector('.monaco-editor .find-widget.visible');
const renameInputVisible = !!editorDomNode.querySelector('.monaco-editor .rename-box');
return suggestVisible || parameterHintsVisible || findWidgetVisible || renameInputVisible
}
return {
/**
* Editor type